2009-07-10 4 views
1

WebsphereMQ 또는 ActiveMQ (JMS를 통해 사용됨)와 같은 메시징 시스템에서 메시지 전달의 신뢰성에 대해 궁금합니다. 내가 아는 한 메시지는 수신자가 사용할 수 없으면 나중에 버퍼링 될 수 있습니다.메시지 큐 : 네트워크 장애시 메시지가 손실됩니까?

이제 발신자가 일시적으로 네트워크에 연결할 수없는 경우 어떻게되는지 궁금합니다. 어떤 종류의 로컬 버퍼링이 메시지를 나중에 보냅니 까? 나는 이것이 메시지 브로커가 실행 중인지에 달려 있다고 가정합니다. 모든 기계에 로컬 브로커가 있습니까 아니면 중앙에 브로커가 있습니까?

질문 : 메시지가 일시적으로 네트워크 장애가 발생해도 메시지가 수신되도록하려면 메시징 시스템이 올바른 선택입니까? 이 신뢰성을 달성하기 위해 특정 설정이 필요합니까?

관련 문서에 대한 모든 의견을 환영합니다.

답변

2

일반적인 솔루션을 "저장 및 전달"이라고합니다. 그런 시스템에서 메시지를 로컬 메시지 에이전트에게 넘겨 주면 메시지 에이전트의 책임이됩니다. 이 에이전트는 전체 중개인이 아닐 수도 있습니다. 메시징 시스템에 기본 배달 보장이있는 경우 로컬 에이전트는 실제 브로커에 전달 될 때까지 메시지의 영구 버퍼링을 계속해야합니다.

0

메시지를 잃을 여유가 없다면 가능한 경우 엔드 포인트에서 신뢰할 수있는 메시징 패턴을 구현하는 것이 좋습니다. 즉, 특정 시간 내에 수신 확인이 수신되지 않고 수신자가 보낸 경우 보낸 사람이 다시 전송합니다. 동일한 메시지를 두 번 이상받는 것에 대처하기 위해 중복 된 탐지.

보증 배송은 성능 오버 헤드가 있으며 일반적으로 귀하의 메시지가 얼마나 오래 걸릴지 보증하지 않습니다.