一、水平扩缩容场景的负载均衡
触发条件修改租户资源池 UNIT_NUM(水平扩缩容)。
实现流程
Unit 均衡:RS 根据节点负载,将 Unit 均匀分布到各 OBServer,扩容新增 Unit、缩容先迁移数据再删除 Unit。
LS 均衡:按 Unit 数量自动分裂 / 合并日志流 LS,使每个 Unit 上 LS 数量均衡。
分区均衡:以 Tablet / 分区为单位,在 LS 之间迁移数据,使各节点分区数、数据量均衡。
Leader 均衡:自动将 LS 的 Leader 均匀打散到多个 Unit / 节点,实现读写流量负载均衡。
二、修改 Primary Zone 场景的负载均衡
触发条件修改租户 primary_zone 属性。
实现流程
RS 按新 Zone 优先级重新规划 LS 分布。
执行 LS Leader 切主,将 Leader 批量切换到高优先级 Zone,迁移读写流量。
自动调整 LS 和分区分布,实现 Zone 间、Zone 内双层均衡。
最终让业务流量集中到指定 Zone,降低跨机房访问。
三、数据动态变化场景的负载均衡
触发条件
租户内创建 / 删除分区
长期运行后节点间分区数、存储容量不均衡
实现流程
实时均衡:创建 / 删除分区时,RS 立即调度,将新分区分配到负载低的节点,保证分区数量均衡。
定期均衡:后台周期性检测各节点存储使用率、分区数量、分片大小。
生成均衡计划:RS 自动计算迁移方案,以分区 / Tablet 为单位异步迁移数据。
最终状态:各 OBServer 节点的分区数量、存储容量、读写负载重新达到均衡。
四、统一核心总结
总控角色:全部由 RootService(RS) 统一调度。
调度粒度:Unit → LS(日志流)→ 分区 / Tablet 三级调度。
均衡目标:
节点间 分区数均衡
节点间 数据存储量均衡
节点间 Leader 分布均衡
最终实现 CPU、IO、读写流量整体负载均衡
业务无感:所有迁移、切主均后台异步执行,不中断业务。
4 个赞
谢谢分享
1 个赞
学习了,谢谢
支持一下
1 个赞