把流量搬走而不是把盘换掉
热点处理的本质是把访问压力从少数分片或磁盘上移走。手段分两类:改变数据的落点(迁移分片到更空闲的节点、拆分大对象、重建分布策略),以及改变访问的方式(错峰、限速、加缓存、把读压力前置到边缘)。迁移看起来最直接,但它是带负载的操作:读取源数据、经网络传输、写入目标、更新元数据、回收旧副本,每一步都在争抢正常业务所需的资源。
基本信息
| 目标 | 降低单点负载,使分布回到均衡区间 |
|---|---|
| 手段分类 | 数据侧迁移与分布重建、访问侧错峰限速与缓存 |
| 代价 | 占用带宽与磁盘队列、临时降低冗余度 |
| 前提条件 | 容量与冗余有余量、业务可承受期间抖动 |
| 验证方式 | 迁移前后各维度负载分布对比 |
典型使用场景
- 长期倾斜:少数节点负载显著高于同角色其他节点
- 扩容后数据未均衡:新节点利用率明显偏低
- 大对象集中:单个对象或前缀持续占满带宽
- 租户挤占:某业务写入量突增影响其他业务
- 故障前腾挪:设备健康度下降,提前把数据迁出
迁移的安全步骤
迁移的安全步骤
# 1) 备份与确认:迁移前确认副本完整、元数据可回滚
# 2) 选窗口:避开业务高峰与备份窗口,优先选择低谷时段
# 3) 限速:对迁移任务设定带宽与并发上限,保证前台性能稳定
# 4) 小批量试跑:先迁一批观察前台时延,再放量
# 5) 监控两条线:迁移进度与业务指标必须同时看
# 6) 校验与收尾:迁移后核对校验值与对象数量,再回收旧副本处置手段对照
| 手段 | 适用情形 | 代价与风险 |
|---|---|---|
| 分片迁移 | 节点间负载不均 | 占用带宽,期间冗余度下降 |
| 拆分大对象 | 单个对象占满链路 | 需改动应用读写逻辑 |
| 重建分布策略 | 分片键设计不合理导致长期倾斜 | 影响面大,需停机或双写过渡 |
| 错峰与限速 | 时段性集中访问 | 见效快,但治标不治本 |
| 前置缓存 | 热点为读请求 | 带来一致性与失效策略成本 |
判断是否需要迁移,先看热点是持续的还是临时的:临时热点用错峰与限速更划算,长期倾斜才值得付出数据搬迁的成本。
迁移过程中冗余度会临时下降,此时再发生一块盘故障风险显著上升。务必先确认集群健康、容量余量充足,并且迁移任务本身可被随时暂停。