1

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

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

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

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

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

4

1 回答 1

1

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

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

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

于 2011-06-13T17:52:13.647 回答