在Kafka集群中,单台Broker磁盘即将打满是一个常见的生产紧急情况。Kafka原生支持在不停机、不影响客户端读写的情况下,通过副本迁移(Partition Reassignment)来平衡磁盘空间。 以下是安全、平滑地将部分Partition迁移到其他Broker的标准操作流程(SOP): 第一阶段:紧急缓解(可选,争取时间) 在做数据迁移前,如果磁盘已经到达95%以上,随时可能宕机,建议先执行以下操作争取时间: 1. 临时缩短该Broker上大Topic的保留时间(Retention): 注:这会让Kafka立刻清理过期数据,释放空间。迁移完成后可改回原值。 第二阶段:精准定位与计划 不要盲目迁移整个Topic,只迁移占用空间最大的几个Partition。 1. 找出占用空间最大的Partition 登录磁盘告警的Broker,进入Kafka的 目录,找出最大的文件夹: 假设找到占用最大的是 (Topic为order-events,Partition 2),当前在 Broker 1(即将满的机器)上。 2. 确定目标 Broker 查看集群中其他Broker的磁盘空间,挑...