Kafka Scale Up and Scale Down - tenji/ks GitHub Wiki

Kafka 扩容和缩容

扩容

扩容后的数据均衡

Broker 扩容之后,会存在数据倾斜问题,需要通过执行 kafka-reassign-partitions.sh 脚本来重新分配分区,从而达到数据均衡的目的。

  • 调用--generate生成迁移计划

  • 执行--execute进行扩容

  • 使用--verify查看进度

注意事项

  1. kafka 迁移过程中,会出现磁盘 io 的突增,对机器负载有所影响,建议一次迁移的 topic 分区数量不要太多,分批次迁移较为稳妥;

  2. kafka 迁移完成后,需要同时使用 verify 命令和 describe 验证。确保对涉及迁移的分区,leader 是 Replicas 的其中一个,并且 Replicas 是迁移后的目标节点,同时,Isr 也必须是 Replicas 的子集;

  3. 可以通过—throttle参数提供一个 broker 之间复制传输的流量限制,限制了副本从机器到另一台机器的带宽上限。当重新平衡集群时,这是很有用的,因为它限制了这些密集型的数据操作从而保障了对用户的影响。

    $ bin/kafka-reassign-partitions.sh --zookeeper myhost:2181--execute --reassignment-json-file bigger-cluster.json —throttle 50000000
    

缩容

参考链接