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

ActiveMQ Artemis集群从经典复制迁移至可插拔仲裁配置的技术问询

ActiveMQ Artemis经典复制集群迁移至可插拔仲裁配置的问题

我需要将测试环境中的ActiveMQ Artemis集群从经典复制主从模式迁移至可插拔仲裁投票模式,具体环境与问题如下:

环境信息

  • Artemis版本:2.23.1
  • 当前集群拓扑:6台服务器,分为3组独立的主从节点(经典复制模式)
  • 目标:保留6台服务器的拓扑,迁移至基于ZooKeeper的可插拔仲裁配置
  • 预测试验证:已在无负载环境搭建2节点主备+3节点ZK集群,运行正常

原有经典复制配置

每组主从节点的核心broker.xml配置如下:

主节点

<ha-policy>
  <replication>
    <master>
      <check-for-live-server>true</check-for-live-server>
      <vote-on-replication-failure>true</vote-on-replication-failure>
      <quorum-size>2</quorum-size>
      <group-name>group-for-each-pair</group-name>
    </master>
  </replication>
</ha-policy>

从节点

<ha-policy>
  <replication>
    <slave>
      <allow-failback>true</allow-failback>
      <group-name>group-for-each-pair</group-name>
    </slave>
  </replication>
</ha-policy>

注:group-name用于绑定主从节点配对,确保从节点只连接对应主节点

迁移尝试遇到的问题

最初计划仅将角色从master/slave改为primary/backup,但遇到以下问题:

  1. group-name配置失效:在primary/backup的HA策略中添加group-name会触发XSD验证错误,官方文档仅提到经典复制中的vote-on-replication-failure等配置不再需要,但未提及group-name,疑似文档疏漏。
  2. 备用节点乱连主用节点:使用以下primary/backup配置启动集群时,备用节点会尝试连接任意主用节点,导致部分节点无法正常启动。

新的可插拔仲裁配置

主用节点

<ha-policy>
  <replication>
    <primary>
        <manager>
           <class-name>org.apache.activemq.artemis.quorum.zookeeper.CuratorDistributedPrimitiveManager</class-name>
           <properties>
              <property key="connect-string" value="zookeeper-amq1:2181,zookeeper-amq2:2181,zookeeper-amq3:2181"/>
           </properties>
        </manager>
    </primary>
  </replication>
</ha-policy>

备用节点

<ha-policy>
  <replication>
    <backup>
        <manager>
           <class-name>org.apache.activemq.artemis.quorum.zookeeper.CuratorDistributedPrimitiveManager</class-name>
           <properties>
              <property key="connect-string" value="zookeeper-amq1:2181,zookeeper-amq2:2181,zookeeper-amq3:2181"/>
           </properties>
        </manager>
        <allow-failback>true</allow-failback>
     </backup>
  </replication>
</ha-policy>

已调研的可能方案

  • coordination-id:官方文档说明该配置用于多主用集群场景,不适用于当前3组主备的拓扑
  • ZK的namespace属性:考虑通过给每组主备节点配置独立的ZK命名空间,实现分组配对,但不确定是否会引发其他问题(比如单ZK管理多集群的兼容性)
  • 缩容拓扑:移除4台服务器,仅保留1组主备节点,但需要调整客户端配置,且不符合保留原有拓扑的需求

核心需求

是否存在无需改变6台服务器拓扑的平滑迁移方案?该方案需适配UAT及生产环境的相同拓扑,尽可能减少改动风险。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 13:25:20