添加新节点时如何自动重新平衡分片?
上次更新时间:2024 年 4 月 18 日
问题
向集群添加节点后,是否有 rladmin
命令或过程来重新平衡数据库?虽然可以迁移特定分片,但在部署了集群数据库时,是否有一些类似于稀疏策略的例程?
答案
可以使用 REST API 来实现分片在各个节点上的优化分布。如下:
- 在数据库中启用稀疏放置策略
- 使用以下命令生成蓝图
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
命令的输出
参考
请参阅“优化分片放置数据库操作请求”