集群特点
优点:- 高可用性和容灾能力强
- 支持在线扩容
- 多副本间实时自动备份
- 负载均衡
- 部署稍复杂
- 需要多台机器
集群原则:WuKongIM 遵循
2n+1 原则,n 表示允许宕机的节点数量。- 允许 1 台机器宕机:需要 3 台机器(2×1+1=3)
- 允许 2 台机器宕机:需要 5 台机器(2×2+1=5)
环境要求
- 机器数量:4台或以上
- 操作系统:Linux(推荐 Ubuntu)
- 配置:2核4G 或 4核8G
- Docker:24.0.4 或以上版本
| 角色 | 说明 | 内网IP | 外网IP |
|---|---|---|---|
| 负载均衡和监控 | gateway | 10.206.0.2 | 119.45.33.109 |
| WuKongIM节点 | node1 (ID: 1) | 10.206.0.10 | 146.56.249.208 |
| WuKongIM节点 | node2 (ID: 2) | 10.206.0.12 | 129.211.171.99 |
| WuKongIM节点 | node3 (ID: 3) | 10.206.0.5 | 119.45.175.82 |
部署步骤
1. 安装负载均衡和监控
在gateway 节点创建安装目录:
docker-compose.yml 文件:
nginx.conf 文件(替换 IP 地址为实际地址):
prometheus.yml 文件(替换 IP 地址为实际地址):
2. 安装 WuKongIM 节点
在所有 WuKongIM 节点创建安装目录:3. 启动服务
启动顺序:- 先启动负载均衡和监控:
- 再启动所有 WuKongIM 节点:
4. 验证部署
检查服务状态:- Demo 界面:http://119.45.33.109:15172
- 管理界面:http://119.45.33.109:15300
- 监控界面:http://119.45.33.109:9090
- API 地址:http://119.45.33.109:15001
配置说明
关键环境变量
| 变量名 | 说明 | 示例值 |
|---|---|---|
WK_CLUSTER_NODEID | 节点 ID | 1, 2, 3 |
WK_CLUSTER_APIURL | 节点 API 地址 | http://10.206.0.10:5001 |
WK_CLUSTER_SERVERADDR | 节点通讯地址 | 10.206.0.10:11110 |
WK_CLUSTER_INITNODES | 初始节点列表 | 1@10.206.0.10 2@10.206.0.12 3@10.206.0.5 |
WK_EXTERNAL_WSADDR | 外部 WebSocket 地址 | ws://119.45.33.109:15200 |
WK_EXTERNAL_TCPADDR | 外部 TCP 地址 | 119.45.33.109:15100 |
端口说明
| 端口 | 说明 | 访问方式 |
|---|---|---|
| 5001 | HTTP API | 内网访问 |
| 5100 | TCP 连接 | 客户端连接 |
| 5200 | WebSocket | 客户端连接 |
| 5300 | 管理界面 | Web 访问 |
| 5172 | Demo 界面 | Web 访问 |
| 11110 | 集群通讯 | 节点间通讯 |
| 15001 | 负载均衡 API | 外网访问 |
| 15100 | 负载均衡 TCP | 外网访问 |
| 15200 | 负载均衡 WebSocket | 外网访问 |
| 15300 | 负载均衡管理 | 外网访问 |
| 15172 | 负载均衡 Demo | 外网访问 |
故障排除
常见问题
节点无法加入集群:日志查看
扩容操作
添加新节点到现有集群:- 在新节点创建配置文件
- 设置新的节点 ID
- 更新
WK_CLUSTER_INITNODES包含新节点 - 启动新节点服务
- 更新负载均衡配置

