我知道分区在Kafka Broker中是分开的。但分裂是基于什么?例如,如果我有3个代理和6个分区,如何确保每个代理有2个分区?目前这种分裂是如何在卡夫卡进行的?
答案 0 :(得分:0)
分配策略是一个内部实现细节,没有记录,因为它可以在任何时间点进行更改。因此,您不应该依赖此算法保持不变。此外,您无法对流入/配置此内部策略做任何事情。
基本策略是确保负载平衡,即,它将分区分配给分配的分区少于其他分区的代理。因此,对于您的示例,每个代理将分配2个分区。
此外,对于分区副本a"机架感知"政策适用(截至Kafka 0.10)。这意味着如果可能的话,将分区副本分配给不同的机架,以便在整个机架出现故障时再次保护脱机分区。有关详细信息,请参阅此KIP:https://cwiki.apache.org/confluence/display/KAFKA/KIP-36+Rack+aware+replica+assignment