WuKongIM Docs

扩容与缩容

跟着示例在 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 = 3

cluster.id、副本数和 join_token 必须与现有集群一致。启动并检查进程:

sudo systemctl enable --now wukongim
curl --fail http://10.0.0.14:5001/healthz

2. 在 Manager 激活节点

  1. 等节点 4 的状态显示为 joining
  2. 打开节点 4,点击“激活节点”。
  3. 等状态变成 active

3. 迁入数据

  1. 将“迁移数量”填为 1
  2. 点击“规划槽位扩容”,确认目标是节点 4。
  3. 点击“启动扩容”。活动任务变成 0 后,点击“推进扩容”。
  4. 重复上一步,直到不再创建新任务。

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:510010.0.0.14:5200 加入负载均衡。

缩容:移除节点 4

不要先关闭节点 4

必须等 Manager 显示“可安全移除:是”后,才能移除和关闭服务器。

  1. 先从负载均衡删除节点 4,确认其他节点能承接流量。
  2. 打开节点 4,点击“标记离开”,等状态变成 leaving
  3. 点击“启用 Drain”,等在线、关闭中和待激活连接数全部变成 0。
  4. 将“缩容迁移数量”填为 1,点击“规划缩容” → “推进缩容”。活动任务变成 0 后继续推进。
  5. 点击“刷新缩容状态”。看到 Slot、Channel 和活动任务均为 0,且“可安全移除:是”后,点击“移除节点”。
  6. 最后在节点 4 执行:
sudo systemctl disable --now wukongim

再次检查其余节点的 /readyz 和消息收发。先保留节点 4 的数据目录,确认业务稳定后再按自己的数据保留流程处理。

如果按钮不可用或页面显示阻塞原因,停止操作并保持节点运行,转到故障排查。执行本页操作需要 cluster.node:w

本页内容