EMQX 集群配置指南
该目录用于模拟 EMQX 集群环境。每个子文件夹代表集群中的一个服务器节点,节点文件夹包括:
- node20.220/
- node20.50/
- node22.85/
主要功能
各节点将使用独立的配置文件(例如各节点下的 api_key.conf 和 docker-compose.yaml),通过 Docker Compose 方式启动 EMQX 服务,并构建一个集群环境以实现消息同步与负载均衡。
nginx 负载均衡配置
新增的 nginx.conf 文件用于配置负载均衡,支持 TCP、TLS 以及 WebSocket 协议转发。请根据实际部署环境调整证书路径与后端服务配置。
DNS 负载均衡配置
除了nginx方案,另一种常见方案是采用DNS服务器进行负载均衡。DNS负载均衡通过在DNS解析记录中配置多个后端节点,实现流量的轮询分发。此方案配置简单,无需额外的反向代理软件,但在健康检查和故障切换方面存在不足,并且受DNS缓存影响,更新较慢。
端口要求
确保你的服务器或虚拟机开放以下端口,以便 EMQX 正常运行及集群节点间的通信:
-
EMQX 客户端端口(用于 MQTT/WS/HTTPS 协议接入):
- 1883
- 8083
- 8084
- 8883
- 18083
-
集群同步端口(用于节点间状态同步与集群通信):
- 4370
- 5369
- 5370
发布订阅测试
使用 MQTTX 工具,可以分别从不同节点发起发布和订阅请求,验证不同节点之间的消息传递。测试结果显示,三个节点均能实现消息的成功发布与订阅,证明集群内的消息同步功能正常。
控制台访问
任意节点均可通过管理端口(例如,访问 http://<节点IP>:18083)进入 EMQX 控制台。通过控制台可以监控集群状态、管理配置及进行其他操作,不必限定于单一节点。
启动集群
- 分别进入各节点目录,例如
node20.220/、node20.50/或node22.85/。 - 检查并配置各节点下的
api_key.conf文件,确保各节点使用正确的认证信息。 - 启动 Docker Compose 服务:
docker-compose up -d - 各节点将自动相互发现并建立集群,完成后即可通过任意节点的管理端口(如 18083)访问 EMQX 管理界面。
注意事项
- 请确保所有要求的端口在宿主机或虚拟机中均已开放,避免防火墙阻止集群内部通信。
- 集群节点配置应保持一致,某些配置如集群名称和共享认证方式应统一设置。
- 若在启动过程中遇到问题,请检查各节点日志信息以定位问题。
负载均衡方案对比及推荐
nginx 负载均衡方案
优势:
- 支持TCP、TLS及WebSocket协议;
- 支持健康检测和故障转移;
- 可灵活配置转发规则;
- 高性能且成熟稳定。
劣势:
- 需要额外配置nginx服务及证书管理;
- 配置较复杂,需针对不同协议单独调优;
DNS 负载均衡方案
优势:
- 配置简单,无需额外软件安装;
- 实现多节点轮询较为容易;
劣势:
- 缺乏实时健康检查能力;
- 更新较慢,受DNS缓存影响,故障切换不够及时;
推荐方案
综合对比,推荐采用nginx负载均衡方案以实现更高效、稳定的负载分发和故障切换,适合对性能和可靠性要求较高的生产环境。
按照以上说明配置后,即可启动并运行一个基于 Docker 的 EMQX 集群。



