首页 文章

卡夫卡分区重新分配绩效影响

提问于
浏览
3

我有一个 Kafka 生产集群,有 5 个节点和大约 500 个主题。我需要扩展我的集群以添加 2 个新节点,因此,Kafka 不提供自动数据重新分区,我希望与 Kafka 发行版一起运行kafka-reassign-partitions.sh以重新平衡集群中整个 7 个节点中的所有主题。

由于我的群集中已经有大量的生产数据,

  • 运行此脚本会阻止对我的 Kafka 主题的任何并发写入吗?

  • 运行这个脚本会减慢我的 cluster/producers/consumers 吗?

  • 如果我的群集在此脚本执行期间开始行为异常,如何在 in-progress 时停止此脚本?

我目前正在使用 Kafka v0.8.2.0与多个生产者和多个消费者。

1 回答

  • 6

    Kafka-reassign-partitions 的作用是:

    • 根据需要在新代理上创建新副本

    • 让他们复制数据,直到他们赶上领导者

    • 在需要时触发领导者选举

    • 在需要时删除副本

    领导者选举阶段将延迟写入(就像任何领导者的故障转移一样)。消费者/生产者可能会因为额外的复制占用磁盘和网络资源(有时是重要的资源)而变慢。您无法在进行中停止此操作。我的意思是,你可以从 ZK 删除相关的节点,但它没有真正测试过,所创建的新副本将会存在......我不会尝试。如果您担心,我建议您一次移动一个分区。

    在 0.10.1.0(现在要进行功能冻结)中,我们将添加限制 re-assignment 工作的功能,这将限制对生产者和消费者的性能影响。

相关问题