我发现Kafka的分区机制既笨拙又不舒服。Kafka不支持自动分区重新分配功能,导致以下问题:
bin/kafka-reassign-partitions.sh脚本。你必须以JSON格式手动写出每个主题的分区重新分配。问题:
bin/kafka-reassign-partitions.sh__背后的分区重新分配算法吗?Kafka是否使用任何优化(即一致性散列)或原始散列范围paritioning?发布于 2019-04-09 03:42:12
此外,为了不丢失任何保证,在复制期间,您必须维护额外的副本(旧的和新的)。请注意,有一个KIP正在进行中,以改善该特定行为(KIP-435)。
移动数据在集群上是额外的负载,显然会对performance
kafka-reassign-partitions.sh的默认行为非常幼稚,如果你打算在真实环境中使用它,我真的建议你自己制作一个重新分配文件。默认情况下,它将重新分配所有分区,基本上模拟了使用新代理创建所有主题的过程。虽然这很好地平衡了领导者,但这导致了大量的数据需要复制。
在实践中,可以通过只移动分区的非常小的部分来实现类似的结果,从而限制数据复制和对集群的影响。
如果您不确定如何创建重新分配文件,可以使用一些工具来生成和应用重新分配:cruise-control、kafka-kit
https://stackoverflow.com/questions/55580275
复制相似问题