Kafka Scale Up and Scale Down - tenji/ks GitHub Wiki
Kafka 扩容和缩容
扩容
扩容后的数据均衡
Broker 扩容之后,会存在数据倾斜问题,需要通过执行 kafka-reassign-partitions.sh
脚本来重新分配分区,从而达到数据均衡的目的。
-
调用
--generate
生成迁移计划 -
执行
--execute
进行扩容 -
使用
--verify
查看进度
注意事项
-
kafka 迁移过程中,会出现磁盘 io 的突增,对机器负载有所影响,建议一次迁移的 topic 分区数量不要太多,分批次迁移较为稳妥;
-
kafka 迁移完成后,需要同时使用 verify 命令和 describe 验证。确保对涉及迁移的分区,leader 是 Replicas 的其中一个,并且 Replicas 是迁移后的目标节点,同时,Isr 也必须是 Replicas 的子集;
-
可以通过
—throttle
参数提供一个 broker 之间复制传输的流量限制,限制了副本从机器到另一台机器的带宽上限。当重新平衡集群时,这是很有用的,因为它限制了这些密集型的数据操作从而保障了对用户的影响。$ bin/kafka-reassign-partitions.sh --zookeeper myhost:2181--execute --reassignment-json-file bigger-cluster.json —throttle 50000000