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

ActiveMQ Artemis联邦仅执行轮询而非全网格的原因排查

问题原因与解决方案

原因分析

你当前的联邦配置定义了两个独立的<upstream>节点,每个节点对应一个单独的Broker连接器。在ActiveMQ Artemis的联邦机制中,每个<upstream>被视为一个独立的目标实例,默认会对多个上游采用轮询负载均衡策略——即每条消息只会发送到其中一个上游Broker,然后在多个上游间轮流切换,而非将同一条消息复制分发到所有上游。

正确配置方案

要实现消息向所有上游Broker分发,需要将多个连接器合并到同一个<upstream>节点中,让Artemis将该上游下的所有连接器视为一个需要广播消息的目标组。同时,针对主题类型的地址,确保联邦策略采用广播模式(主题默认支持广播,显式配置更稳妥)。

修改后的联邦配置示例:

<federations>
  <federation name="federated-jms">
    <upstream name="kit-group" message-load-balancing="BROADCAST">
      <static-connectors>
        <connector-ref>kit1-connector1</connector-ref>
        <connector-ref>kit2-connector1</connector-ref>
      </static-connectors>
      <policy ref="address-federation-policy" />
    </upstream>

    <policy-set name="address-federation-policy">
      <policy ref="federation-addresses" />
    </policy-set>

    <address-policy name="federation-addresses" max-hops="1">
      <include address-match="jms.topic.federated.#" />
    </address-policy>
  </federation>
</federations>

关键说明

  • message-load-balancing="BROADCAST":显式指定将消息广播到该上游下的所有连接器,确保同一条消息会被发送到所有目标Broker。
  • 合并连接器到同一<upstream>:让Artemis识别这是一个需要全部分发的目标集群,而非多个独立的轮询节点。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 02:24:58