ActiveMQ: простой тематический кластер

Ну, допустим, я создаю чат-приложение на основе ActiveMQ. Все очень просто. Имея только один QUEUE.IN и один TOPIC.OUT. Все сообщения просто перенаправляются сразу с QUEUE.IN на TOPIC.OUT. Клиенты отправляют свои сообщения чата QUEUE.IN и используют TOPIC.OUT. Это все.

Теперь я хочу сгруппировать это. Не нужно ничего сложного. Просто запустите несколько других идентичных узлов (A..N). Обычно клиент, подписанный на узел A, отправляет сообщение на A.QUEUE.IN. Это сообщение должно появиться на всех остальных узлах (A..N).TOPIC.OUT. Это можно легко сделать с помощью простого верблюжьего маршрута, который перенаправляет все сообщения, приходящие на TOPIC.OUT, на другие узлы, но есть ли какой-нибудь хороший способ сделать это на основе ActiveMQ? Нравится какая-то очередь / тема, общая для нескольких экземпляров AMQ?


person Archer    schedule 25.06.2010    source источник
comment
не могли бы вы сначала объяснить, почему вы назвали Queue по-разному на каждом узле? ActiveMQ можно легко кластеризовать, чтобы очередь QUEUE.IN существовала на всех различных узлах. Activemq затем распределяет сообщения правильным потребителям на том же узле ИЛИ другому узлу .., вы можете сохранить ту же логику с маршрутизацией. Однако, поскольку я все равно задаю вопросы: зачем вам создавать в очереди, а затем просто направлять их в тему? Вы можете легко заставить своих клиентов работать по данной теме. Это экономит накладные расходы   -  person Noctris    schedule 25.06.2010


Ответы (2)


Думаю, вы можете найти здесь свой ответ:

http://activemq.apache.org/how-do-distributed-queues-work.html

person Noctris    schedule 25.06.2010

Вы можете пересылать сообщения на несколько конечных точек в activemq, используя виртуальные места назначения.

http://activemq.apache.org/virtual-destinations.html

person gregwhitaker    schedule 08.07.2010