2013-04-12 5 views
0

저는 C++, Python 및 Java로 작성된 클라이언트와 함께 C++ 브로커를 사용하고 있습니다. 우리가 하룻밤 사이에 시스템을 실행하면, 아침까지 확실하게 메시지를 보내거나받지 못합니다. 모든 메시지는 주제를 통해 대상을 지정하는 주제와 교환됩니다. 질문이 3 개 있습니다.Qpid 신뢰성

1. 대기열을 사용해야합니까? 주제에 대해 대기열을 사용하면 장점이 있습니까? 주제에 대한 큐를 선택하는 디자인 결정은 무엇입니까? 대기열은보다 엄격하게 보입니다. 즉, 노드 A가 요청을 보내고 응답을 원한다는 것을 알면 바로 응답 (pub/sub)을 보냅니다.

2.) 메시지가 수신 확인되지 않은 경우 어떤 일이 발생할 수 있습니까? 파이썬 모듈에 session.acknowledge()가 없다는 것을 발견했습니다. 이것이 우리의 야간 실패를 초래할 수 있습니까? 오늘이 문제를 발견 했으므로 내일 더 많은 통찰력을 가지기를 바랍니다. 해결책은 qpidd 서비스를 다시 시작하는 것입니다. (x64 Linux에서 실행 중입니다.)

3.) 클러스터 장애 조치를 사용하는 것이 좋은 이유입니까?

+0

밤새 실험을 실행 한 후 session.acknowledge()가 상황을 도왔다는 것을 발견했습니다. 브로커는 여전히 아침까지 죽습니다. 어떤 아이디어? – user2274732

답변

0

1) 아키텍처에 따라 다릅니다. 메소드, 대기열 및 주제 둘 다 많은 소스에서 많은 대상으로 메시지를 가져올 수 있습니다. 주제는 모든 청취자에게 메시지를 가져오고, 대기열은 청취자 중 한 명에게 메시지를 가져옵니다.

2) 실패와 관련된 오류 또는 로그 메시지가 있습니까? 네가 자원이 부족한 것 같아.

3) 아니요, 24 시간 전에 메시징이 실패하는 이유를 알아야합니다.

+0

예, 일부 레거시 코드에서 메모리 누수 가능성을 줄였습니다. 감사! – user2274732