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

ActiveMQ Artemis复制集群主节点地址队列不复制是否正常?

ActiveMQ Artemis集群行为疑问解答

这是默认配置下的正常行为,具体原因如下:

1. 地址与队列的跨节点同步逻辑

ActiveMQ Artemis默认采用对等集群模式,每个集群节点独立维护自身的地址、队列元数据及消息数据。你的架构中,单台服务器的主备节点通过复制机制实现内部数据同步,但不同主备对属于集群中的独立节点,默认不会自动跨节点同步地址和队列。只有配置了集群地址(Cluster Address)或开启了自动创建资源的集群同步规则,才能让在一个主节点创建的地址/队列同步到其他主节点。

2. 无备份时主节点宕机的数据丢失问题

当所有备份节点失效后,每个主节点的数据仅存储在本地磁盘。若某主节点宕机且无法恢复,其本地存储的队列和消息必然丢失——因为默认集群模式下,不同主节点之间不会复制消息数据,只有主备对内部存在数据副本。


集群检查命令输出

[peter@amq ~]$ /opt/amq/bin/artemis check cluster
Connection brokerURL = tcp://192.168.2.74:61616
nodeID主节点地址主节点本地时间备份节点地址
99b3b24f-d272-11ef-a58d-525400a7703ctcp://192.168.2.76:616162025-01-15 13:14:03tcp://192.168.2.77:61616
4700c8d1-d268-11ef-8284-525400a7703ctcp://192.168.2.74:616162025-01-15 13:14:03tcp://192.168.2.75:61616

集群内时间偏差为37毫秒

--> 验证节点ID 99b3b24f-d272-11ef-a58d-525400a7703c的拓扑结构,主节点 = tcp://192.168.2.76:61616,备份节点 = tcp://192.168.2.77:61616
在主节点tcp://192.168.2.76:61616上验证
ok!

--> 验证节点ID 4700c8d1-d268-11ef-8284-525400a7703c的拓扑结构,主节点 = tcp://192.168.2.74:61616,备份节点 = tcp://192.168.2.75:61616
在主节点tcp://192.168.2.74:61616上验证
ok!

可选优化方案

  • 若需跨主节点同步地址/队列:配置cluster-connection的address属性为#(匹配所有地址),确保地址使用multicast路由类型,同时开启自动创建资源的集群同步配置。
  • 若需避免无备份时主节点宕机数据丢失:可采用共享存储集群(如JDBC、共享文件系统),或通过集群连接配置跨节点的消息镜像机制。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 00:23:17