假设您有一个单节点kakfa集群,并且您创建了一个包含两个分区的主题,因为您希望能够并行地使用。然后一个新的代理加入集群。这是否也会触发现有主题分区的重新分配,我的意思是,是否会将来自主题第二个分区的所有数据移动到第二个代理?或者新的代理将只参与未来主题的分区分布?
vm0i2vca1#
将代理添加到集群时,kafka不会自动重新分配现有分区。这有几个原因:移动分区会导致大量代理间通信和集群上的额外负载。很难确定要移动哪些分区。在您的例子中,这很简单,但是想象一下一个集群有1000个分区和许多代理。Kafka文档中有一节是关于集群扩展的。有几种工具可以执行这种操作: kafka-reassign-partitions.sh 是默认的kafka工具,可用于以受控方式跨新代理重新平衡分区。https://github.com/datadog/kafka-kithttps://github.com/linkedin/cruise-control
kafka-reassign-partitions.sh
1条答案
按热度按时间vm0i2vca1#
将代理添加到集群时,kafka不会自动重新分配现有分区。
这有几个原因:
移动分区会导致大量代理间通信和集群上的额外负载。
很难确定要移动哪些分区。在您的例子中,这很简单,但是想象一下一个集群有1000个分区和许多代理。
Kafka文档中有一节是关于集群扩展的。
有几种工具可以执行这种操作:
kafka-reassign-partitions.sh
是默认的kafka工具,可用于以受控方式跨新代理重新平衡分区。https://github.com/datadog/kafka-kit
https://github.com/linkedin/cruise-control