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

Jms 在HornetQ集群中使用过滤器控制消息传递?,jms,cluster-computing,hornetq,Jms,Cluster Computing,Hornetq,由于业务需求,我正在使用JMS消息传递设置,其中: 队列必须由应用程序容器定义 队列必须能够存在于集群中,并平衡负载 应用程序必须允许客户端指定可能从该队列接收消息的集群节点子集 目前,每个节点都具有相同的hornetq配置,并且每个节点都与默认广播设置通信 在阅读了文档之后,我想我也许可以在消息上设置一个属性,其中包括合法集群节点的列表,然后按照“position(${currentNode},legal_nodes)!”的思路做一些事情0'. 到目前为止,我还没有取得太大的成功,主要是

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

  • 队列必须由应用程序容器定义
  • 队列必须能够存在于集群中,并平衡负载
  • 应用程序必须允许客户端指定可能从该队列接收消息的集群节点子集
目前,每个节点都具有相同的hornetq配置,并且每个节点都与默认广播设置通信

在阅读了文档之后,我想我也许可以在消息上设置一个属性,其中包括合法集群节点的列表,然后按照“position(${currentNode},legal_nodes)!”的思路做一些事情0'. 到目前为止,我还没有取得太大的成功,主要是因为hornetq文档中的文档比较零散


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

我在每个队列上都使用了这个选择器:

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


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

我最后在每个队列上使用了这个选择器:

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

之后,我使用Spring MessagePostProcessor为每条消息设置合法的_节点属性