使用过滤器控制HornetQ群集中的消息传递?

时间:2011-06-09 20:05:16

标签: jms cluster-computing hornetq

由于业务需求,我正在使用JMS消息设置,其中包括:

  • 队列必须由应用程序容器定义。
  • 队列必须能够存在于群集中,并平衡负载。
  • 应用程序必须允许客户端指定可以从此队列接收消息的群集节点的子集。

目前,每个节点都有相同的hornetq配置,每个节点都与默认的广播设置进行通信。

阅读完文档之后,我想到我可以在包含合法群集节点列表的消息上设置属性,然后沿着'position($ {currentNode},LEGAL_NODES)行做一些事情!= 0' 。到目前为止,我还没有取得多大成功,主要是因为hornetq文档中存在相当多的文档。

有没有人解决过这样的问题?你是怎么做到的?

1 个答案:

答案 0 :(得分:1)

我最终在每个队列上使用此选择器:

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

之后,我使用Spring MessagePostProcessor为每条消息设置LEGAL_NODES属性。