You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

从ActiveMQ Classic迁移至Artemis:双工联邦Anycast消息转发问题

ActiveMQ Artemis 复刻 Classic 双工队列转发方案

你遇到的问题根源在于Artemis的地址联邦仅支持multicast(主题)地址,官方文档明确说明:

联邦地址可以将从上游地址发布的消息复制到本地地址。注意:仅支持多播地址。

要实现Classic中队列(anycast)的双向消息转发,需要改用队列联邦(Federated Queues),而非地址联邦。以下是具体配置方案:

核心配置思路

队列联邦专门用于同步anycast队列的消息,支持将上游队列的消息复制到本地,让本地消费者能接收上游队列的消息。要实现A、B代理的双向转发,两台代理都需要配置指向对方的上游和队列匹配策略。

代理B(次级)配置

在broker.xml中添加联邦配置,指定上游指向代理A,并匹配所有队列:

<!-- 定义到代理A的连接器 -->
<connectors>
   <connector name="connector-to-A">tcp://A的IP:61616</connector>
</connectors>

<federations>
   <federation name="federation-to-A">
      <!-- 上游配置:连接到代理A -->
      <upstream name="upstream-to-A">
         <static-connectors>
            <connector-ref>connector-to-A</connector-ref>
         </static-connectors>
         <!-- 引用队列匹配策略 -->
         <policy-set-ref>all-queues-policy</policy-set-ref>
      </upstream>
   </federation>
</federations>

<!-- 定义匹配所有队列的策略 -->
<policy-sets>
   <policy-set name="all-queues-policy">
      <queues>
         <!-- # 匹配所有队列 -->
         <queue-match pattern="#"/>
      </queues>
   </policy-set>
</policy-sets>

代理A配置

同样在broker.xml中添加指向代理B的联邦配置,实现双向转发:

<!-- 定义到代理B的连接器 -->
<connectors>
   <connector name="connector-to-B">tcp://B的IP:61616</connector>
</connectors>

<federations>
   <federation name="federation-to-B">
      <upstream name="upstream-to-B">
         <static-connectors>
            <connector-ref>connector-to-B</connector-ref>
         </static-connectors>
         <policy-set-ref>all-queues-policy</policy-set-ref>
      </upstream>
   </federation>
</federations>

<policy-sets>
   <policy-set name="all-queues-policy">
      <queues>
         <queue-match pattern="#"/>
      </queues>
   </policy-set>
</policy-sets>

效果验证

  • 生产者在A发送消息到队列queue1,代理B上订阅queue1的消费者会收到该消息
  • 生产者在B发送消息到队列queue1,代理A上订阅queue1的消费者会收到该消息
  • 主题(multicast地址)的转发可保留原地址联邦配置,与队列联邦共存

内容的提问来源于stack exchange,提问作者rb612

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.29 02:37:44