添加新节点时如何自动重新平衡分片?

上次更新时间:2024 年 4 月 18 日

问题

向集群添加节点后,是否有 rladmin 命令或过程来重新平衡数据库?虽然可以迁移特定分片,但在部署了集群数据库时,是否有一些类似于稀疏策略的例程?

答案

可以使用 REST API 来实现分片在各个节点上的优化分布。如下:

  1. 在数据库中启用稀疏放置策略
  2. 使用以下命令生成蓝图
curl -l -k -u "<ADMIN_USERNAME>:<ADMIN_PASSWORD>" -X GET -H 'Content-type: application/json' "https://127.0.0.1:9443/v1/bdbs/10/actions/optimize_shards_placement"

这会指出分片在节点中的最佳位置。检查 rladmin,看看是否与你现在的情况有所不同。此蓝图可以使用 REST API bdbs 端点应用于数据库。你将需要从 GET 请求中获取 cluster-state-id 标头,然后使用蓝图数组作为 shards_blueprint 的值,在该 PUT 请求的标头中重新提交该标头。

curl -l -k -u "<ADMIN_USERNAME>:<ADMIN_PASSWORD>" -X PUT -H 'Content-type: application/json' -d '{"shards_blueprint": XXX}' https://127.0.0.01:9443/v1/bdbs/10

其中 XXX 是先前 GET 命令的输出

参考

请参阅“优化分片放置数据库操作请求