扩容与缩容
跟着示例在 Manager 中增加或移除一个节点。
下面用一个例子直接操作:现有节点为 1~3,新增节点 4,IP 是 10.0.0.14。入口:Manager → 集群 → 节点。
扩容:新增节点 4
1. 配置并启动新节点
复制现有节点的配置,保留其他配置不变。修改 [node],并将 [cluster] 中的 nodes 删除后改为:
[node]
id = 4
data_dir = "/var/lib/wukongim"
[cluster]
id = "prod-im-a"
listen_addr = "0.0.0.0:7000"
advertise_addr = "10.0.0.14:7000"
seeds = ["10.0.0.11:7000"]
join_token = "与现有节点相同的密钥"
hash_slot_count = 256
slot_replica_n = 3
channel_replica_n = 3cluster.id、副本数和 join_token 必须与现有集群一致。启动并检查进程:
sudo systemctl enable --now wukongim
curl --fail http://10.0.0.14:5001/healthz2. 在 Manager 激活节点
- 等节点 4 的状态显示为
joining。 - 打开节点 4,点击“激活节点”。
- 等状态变成
active。
3. 迁入数据
- 将“迁移数量”填为
1。 - 点击“规划槽位扩容”,确认目标是节点 4。
- 点击“启动扩容”。活动任务变成 0 后,点击“推进扩容”。
- 重复上一步,直到不再创建新任务。
4. 验收
curl --fail http://10.0.0.11:5001/readyz
curl --fail http://10.0.0.12:5001/readyz
curl --fail http://10.0.0.13:5001/readyz
curl --fail http://10.0.0.14:5001/readyz四个请求都成功且消息能正常收发后,再把 10.0.0.14:5100 和 10.0.0.14:5200 加入负载均衡。
缩容:移除节点 4
不要先关闭节点 4
必须等 Manager 显示“可安全移除:是”后,才能移除和关闭服务器。
- 先从负载均衡删除节点 4,确认其他节点能承接流量。
- 打开节点 4,点击“标记离开”,等状态变成
leaving。 - 点击“启用 Drain”,等在线、关闭中和待激活连接数全部变成 0。
- 将“缩容迁移数量”填为
1,点击“规划缩容” → “推进缩容”。活动任务变成 0 后继续推进。 - 点击“刷新缩容状态”。看到 Slot、Channel 和活动任务均为 0,且“可安全移除:是”后,点击“移除节点”。
- 最后在节点 4 执行:
sudo systemctl disable --now wukongim再次检查其余节点的 /readyz 和消息收发。先保留节点 4 的数据目录,确认业务稳定后再按自己的数据保留流程处理。
如果按钮不可用或页面显示阻塞原因,停止操作并保持节点运行,转到故障排查。执行本页操作需要 cluster.node:w。