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

ActiveMQ Artemis多Broker的MQTT高可用与负载均衡连接方案咨询

ActiveMQ Artemis 多主备集群的MQTT连接方案选择

我部署了3个主Broker + 3个从Broker的ActiveMQ Artemis集群,已经通过Spring Boot(JMS)和Artemis CLI实现了集群连接,配置示例如下:

Spring Boot 配置示例

spring:
  artemis:
    mode: native
    broker-url: (<maste1>,<maste2>,<maste3>,<slave1>,<slave2>,<slave3>)?ha=true&retryInterval=1000&retryIntervalMultiplier=1.5&maxRetryInterval=60000&reconnectAttempts=1000
    user:
    password:

Artemis CLI 命令示例

artemis producer --url "(<maste1>,<maste2>,<maste3>,<slave1>,<slave2>,<slave3>)?ha=true&retryInterval=1000&retryIntervalMultiplier=1.5&maxRetryInterval=60000&reconnectAttempts=1000" ...

现在遇到的问题是:MQTT客户端(如mqtt.fx、mqttx)仅支持配置单个主机名和端口,不确定该选择以下哪种方式实现MQTT连接的高可用与负载均衡:

  • 方案一:将所有Broker地址提供给客户端,但后续增减Broker时需要更新客户端配置
  • 方案二:使用代理服务器(如F5、Nginx)管理连接,但担心和Artemis自身的负载均衡功能冲突

两种方案的对比与建议

1. 直接向客户端提供所有Broker地址(MQTT 5.0 支持)

如果你的MQTT客户端支持MQTT 5.0协议,可以利用MQTT 5.0的Server Reference特性(或部分客户端的自定义多地址配置),把所有Broker的地址列表提供给客户端。客户端会自动尝试连接列表中的节点,实现故障转移。

  • 优势:无需额外部署代理,直接利用Artemis自身的HA与负载均衡能力,减少中间层复杂度
  • 劣势:
    • 仅支持MQTT 5.0客户端,老版本MQTT 3.x客户端无法兼容
    • 集群节点增减时,必须同步更新所有客户端的地址配置,维护成本高,不适用于大规模客户端场景

2. 使用代理服务器做统一入口

这是生产环境更推荐的方案,尤其是客户端数量多或采用MQTT 3.x协议的场景。代理服务器作为统一连接入口,负责负载均衡和故障转移,客户端只需配置代理的地址即可。

  • 关于负载均衡冲突的疑问:
    Artemis自身的负载均衡是针对集群内部的消息路由与客户端连接分发,而代理服务器的负载均衡是在TCP连接层面做分发,两者并不冲突。代理负责把客户端连接均匀转发到集群的主Broker节点(从Broker通常仅用于故障接管,不处理正常连接),Artemis内部再根据自身的负载策略优化消息处理。
  • 优势:
    • 兼容所有MQTT版本客户端,无需修改客户端配置
    • 集群节点增减时,只需更新代理配置,客户端无感知,维护成本低
    • 代理可额外提供SSL终止、流量管控、访问控制等功能,增强集群安全性与可控性
  • 推荐代理选型:
    • F5/Nginx Plus:适合企业级场景,提供成熟的TCP负载均衡、健康检查功能,能自动剔除故障节点
    • HAProxy:轻量开源的TCP负载均衡工具,配置简单,适合中小规模集群
    • Artemis内置代理:ActiveMQ Artemis提供内置的MQTT代理模块,可部署独立代理节点作为连接入口,与集群原生集成度更高

最终建议

  • 若客户端均为MQTT 5.0且数量较少,可尝试直接配置多地址列表;
  • 生产环境优先选择代理服务器方案,既能兼容所有客户端,又能降低集群维护成本,同时结合Artemis自身的HA与负载均衡能力,实现完整的高可用架构。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 06:30:56