저는 Mule ESB를 고려중인 회사에서 일하고 있습니다. Mule이 Mule 고 가용성 (HA) 클러스터를 생성하기 위해 클러스터 구성에서 Mule을 설정해야합니다.여러 대의 서버가 토끼 MQ와 상호 작용합니다
이제 정전이나 디스크 오류가 발생할 경우 들어오는 메시지를 대기열에 보관해야합니다. 내가 이해하는 한, 공유 메모리 그리드에 메시지를 "지속"하는 기본 Mule Object Store를 사용할 수 있습니다. 그러나, 여기에서 나의 첫 번째 생각은 전체 클러스터가 작동하지 않는 정전이 발생하면 이것이 좋을 수 없다는 것입니다.
다른 옵션은 RabbitMQ 또는 ActiveMQ와 같은 별도의 대기열 제품을 사용하는 것입니다. 그러나 HA 클러스터와 함께 제대로 통합 할 수 있습니까? 이 제품에 동일한 메시지가 동시에 두 대의 시스템에서 선택되지 않도록하는 메커니즘이 있습니까?
가- 뮬 메시지를 전달 클라이언트에게 OK 으로, 메시지를 수신하는 큐를두고 반응 : 는 (관찰자 패턴에 기초하여)이 시나리오를 생각해 보자.
- Mule은 대기열에서 메시지를 가져 와서이를 구독자에게 전달하려고 시도합니다.
- 구독자가 메시지를 수락하고 Mule이 메시지를 큐에서 제거합니다.
HA 클러스터의 다른 Mule 인스턴스가 위의 2와 3 사이의 메시지를 선택하려고하면 어떻게됩니까? Mule이 메시지가 큐에서 "배달 시도"로 선택되었음을 나타낼 수있는 메커니즘이 있습니까? 그렇다면 전달이 실패하면 전달에 실패하면 큐의 메시지를 "배달되지 않음"으로 업데이트 하시겠습니까?