首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Kafka分区重新分配算法及其原因

Kafka分区重新分配算法及其原因
EN

Stack Overflow用户
提问于 2019-04-09 03:13:01
回答 1查看 2.3K关注 0票数 1

我发现Kafka的分区机制既笨拙又不舒服。Kafka不支持自动分区重新分配功能,导致以下问题:

  1. 如果你想添加节点,你必须手动执行bin/kafka-reassign-partitions.sh脚本。你必须以JSON格式手动写出每个主题的分区重新分配。
  2. On broker failure,我认为副本应该在不重新分区的情况下激活。这可能导致热点斑点。我说的对吗?

问题:

  1. 有没有什么架构/设计上的原因,为什么Kafka没有/不应该有自动分区重新分配?这是因为它降级了performance?
  2. What是bin/kafka-reassign-partitions.sh__背后的分区重新分配算法吗?Kafka是否使用任何优化(即一致性散列)或原始散列范围paritioning?
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-04-09 03:42:12

  1. 由于数据存储在代理上,如果您将一个分区重新分配给另一个代理,则必须复制所有数据。

此外,为了不丢失任何保证,在复制期间,您必须维护额外的副本(旧的和新的)。请注意,有一个KIP正在进行中,以改善该特定行为(KIP-435)。

移动数据在集群上是额外的负载,显然会对performance

  • The产生重大影响。kafka-reassign-partitions.sh的默认行为非常幼稚,如果你打算在真实环境中使用它,我真的建议你自己制作一个重新分配文件。

默认情况下,它将重新分配所有分区,基本上模拟了使用新代理创建所有主题的过程。虽然这很好地平衡了领导者,但这导致了大量的数据需要复制。

在实践中,可以通过只移动分区的非常小的部分来实现类似的结果,从而限制数据复制和对集群的影响。

如果您不确定如何创建重新分配文件,可以使用一些工具来生成和应用重新分配:cruise-controlkafka-kit

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55580275

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档