我发现num.partitions的值是创建autotopic时整个kafka集群上的分区号。
我在我的机器上启动了2个broker,brokera和brokerb,它们有自己的server.properties(都是num.partitons=2),然后我启动了一个producer,向kafka写入一条消息。我发现每个代理创建一个分区。
问题是,当集群中的每个代理都有自己不同的num.partitions时,一个主题有多少个分区的逻辑将是模糊的。例如,brokera num.partition=2,brokerb num.partitions=1。自动创建主题时,该主题将有多少个分区?
我已经测试过这个案子,但找不出合乎逻辑的规则。行为似乎是随机的,有时是自动主题,有时是1个分区,有时是2个分区。
1条答案
按热度按时间flseospp1#
根据设计,生产者将选择负载最少的代理来获取主题元数据。对于任何不存在的主题,所选的代理使用自己指定的主题创建它们
num.partitions
如果auto.create.topics.enable
这是真的。对于负载最少的代理,它意味着未完成请求最少的节点。在测试环境中,有时可能是brokera,但有时是brokerb。这就是你观察随机性的原因。