Eh bien, disons que je suis en train de créer une application de discussion basée sur ActiveMQ. C'est plutôt simple. Ayant seulement un QUEUE.IN
et un TOPIC.OUT
. Tous les messages sont simplement acheminés immédiatement de QUEUE.IN
à TOPIC.OUT
. Les clients produisent leurs messages de discussion à QUEUE.IN
et consomment à partir de TOPIC.OUT
. C'est tout.ActiveMQ: cluster basé sur un sujet simple
Maintenant, je veux le mettre en cluster. Je n'ai pas besoin de quelque chose de complexe. Il suffit de lancer quelques autres noeuds identiques (A..N)
. Fondamentalement, client, abonné au nœud A
, envoie un message à A.QUEUE.IN
. Ce message doit ensuite apparaître sur tous les autres noeuds (A..N).TOPIC.OUT
. Cela pourrait être facilement fait par une simple route de chameau qui réacheminer tous les messages à TOPIC.OUT
vers d'autres nœuds, mais y a-t-il une bonne façon d'utiliser ActiveMQ-native? Comme certaines file d'attente/sujet partagé entre plusieurs instances AMQ?
pourrait vous expliquer d'abord pourquoi vous nommez la file d'attente différemment sur chaque nœud? ActiveMQ Peut facilement être mis en cluster de sorte que la file d'attente QUEUE.IN existe sur tous les différents noeuds. Activemq distribuera ensuite les messages aux consommateurs corrects sur le même noeud OU un autre noeud .., vous pouvez conserver la même logique routage .. Cependant, puisque je pose des questions de toute façon: pourquoi produiriez-vous sur une file d'attente et puis les achemineriez simplement à un sujet? Vous pouvez facilement faire en sorte que vos clients produisent sur le sujet en premier lieu. Cela vous évite des frais généraux – Noctris