Использование фильтров для управления доставкой сообщений в кластере HornetQ? - PullRequest
1 голос
/ 10 июня 2011

Из-за требований бизнеса я работаю с установкой обмена сообщениями JMS, в которой:

  • Очереди должны определяться контейнером приложения.
  • Очереди должны существовать в кластере и балансировать нагрузку.
  • Приложение должно разрешать клиенту указывать подмножество узлов кластера, которые могут получать сообщения из этой очереди.

В настоящее время каждый узел имеет идентичную конфигурацию hornetq, и каждый узел связывается с настройкой широковещания по умолчанию.

После прочтения документации у меня возникла мысль, что, возможно, я могу установить свойство в сообщении, которое включает в себя список допустимых узлов кластера, а затем сделать что-то в соответствии с позицией '($ {currentNode}, LEGAL_NODES)! = 0' . До сих пор я не добился большого успеха, в основном из-за довольно неаккуратной документации в документации по hornetq.

Кто-нибудь решил такую ​​проблему? Как ты это сделал?

1 Ответ

1 голос
/ 13 июня 2011

Я использовал этот селектор в каждой очереди:

<selector string="LEGAL_NODES LIKE '%${cluster_identifier}%' OR LEGAL_NODES = ''"/>

После этого я использовал Spring MessagePostProcessor, чтобы установить свойство LEGAL_NODES для каждого сообщения.

...