105 lines
3.8 KiB
Markdown
105 lines
3.8 KiB
Markdown
# 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 控制台。通过控制台可以监控集群状态、管理配置及进行其他操作,不必限定于单一节点。
|
||
|
||

|
||
|
||
## 启动集群
|
||
|
||
1. 分别进入各节点目录,例如 `node20.220/`、`node20.50/` 或 `node22.85/`。
|
||
2. 检查并配置各节点下的 `api_key.conf` 文件,确保各节点使用正确的认证信息。
|
||
3. 启动 Docker Compose 服务:
|
||
```bash
|
||
docker-compose up -d
|
||
```
|
||
4. 各节点将自动相互发现并建立集群,完成后即可通过任意节点的管理端口(如 18083)访问 EMQX 管理界面。
|
||
|
||
## 注意事项
|
||
|
||
- 请确保所有要求的端口在宿主机或虚拟机中均已开放,避免防火墙阻止集群内部通信。
|
||
- 集群节点配置应保持一致,某些配置如集群名称和共享认证方式应统一设置。
|
||
- 若在启动过程中遇到问题,请检查各节点日志信息以定位问题。
|
||
|
||
## 负载均衡方案对比及推荐
|
||
|
||
### nginx 负载均衡方案
|
||
优势:
|
||
- 支持TCP、TLS及WebSocket协议;
|
||
- 支持健康检测和故障转移;
|
||
- 可灵活配置转发规则;
|
||
- 高性能且成熟稳定。
|
||
|
||
劣势:
|
||
- 需要额外配置nginx服务及证书管理;
|
||
- 配置较复杂,需针对不同协议单独调优;
|
||
|
||
### DNS 负载均衡方案
|
||
优势:
|
||
- 配置简单,无需额外软件安装;
|
||
- 实现多节点轮询较为容易;
|
||
|
||
劣势:
|
||
- 缺乏实时健康检查能力;
|
||
- 更新较慢,受DNS缓存影响,故障切换不够及时;
|
||
|
||
### 推荐方案
|
||
综合对比,推荐采用nginx负载均衡方案以实现更高效、稳定的负载分发和故障切换,适合对性能和可靠性要求较高的生产环境。
|
||
|
||
按照以上说明配置后,即可启动并运行一个基于 Docker 的 EMQX 集群。
|
||
|
||
|
||
---
|
||
|
||
## EMQX测试
|
||
|
||
### 多节点链接
|
||
|
||

|
||
|
||
### 单节点发布订阅
|
||
|
||

|
||
|
||
### 多节点发布订阅
|
||
|
||

|