ActiveMQ Artemis集群故障转移支持及配置方案咨询
ActiveMQ Artemis 集群故障切换与架构选型解答
1. 纯3节点无备份集群的故障表现
- 无备份的3节点普通集群本身支持负载自动切流:当某一个节点故障后,新的生产者、消费者连接请求会自动路由到剩余2个正常节点;已经和故障节点建立连接的客户端,只要在连接工厂配置了完整的集群节点地址列表(例如连接串配置为
(tcp://node1:61616,tcp://node2:61616,tcp://node3:61616)?reconnectAttempts=-1)、开启了自动重连策略,断开后也会自动重新连接到正常节点,新的生产消费流量会由剩余2个节点承接,无需人工干预。 - 注意:该架构下故障节点内存储的未消费持久化消息、消费进度会暂时不可用,只有等故障节点恢复后才能继续处理,极端情况下如果节点磁盘损坏还会出现消息丢失。
2. 3主3从架构的适用场景
如果你需要实现消息零丢失、故障转移完全无感知,就需要为每个主节点配置独立的备份节点,也就是3主3从共6台的高可用架构:
- 主从节点之间可以配置基于网络的消息复制,或者共享存储模式,主节点故障后备份节点会自动提升为主节点,完整接管原主节点的所有消息、消费进度、连接会话,故障转移过程对客户端透明,不会出现消息丢失,也不需要等待故障节点恢复。
实际选型建议
- 若业务允许短暂的连接中断、故障节点的消息可以延迟到节点恢复后再处理,3节点普通集群完全满足需求,不需要额外部署备份节点。
- 若业务属于支付、订单等对消息可靠性、服务连续性要求极高的场景,建议采用3主3从的高可用架构。
内容的提问来源于stack exchange,提问作者senko
相关产品推荐
相关产品推荐

