假设我们有一个三节点的kafka集群,在创建主题时只有两个节点处于活动状态。在那之后,如果我们把第三个节点带回来,它将能够捕获这个新创建的主题的所有数据。我试着在第三个节点出现后关闭另外两个节点,当我描述第三个节点没有充当分区的领导者时。
Topic: test PartitionCount: 6 ReplicationFactor: 2 Configs: segment.bytes=1073741824
Topic: test Partition: 0 Leader: none Replicas: 0,1 Isr: 0
Topic: test Partition: 1 Leader: none Replicas: 1,0 Isr: 0
Topic: test Partition: 2 Leader: none Replicas: 0,1 Isr: 0
Topic: test Partition: 3 Leader: none Replicas: 1,0 Isr: 0
Topic: test Partition: 4 Leader: none Replicas: 0,1 Isr: 0
Topic: test Partition: 5 Leader: none Replicas: 1,0 Isr: 0
却没有显示?
1条答案
按热度按时间mwngjboj1#
您创建的主题
ReplicationFactor: 2
. 这意味着只有2个代理拥有此主题的数据。由于有2个代理(0和1)正在运行,因此选择了这些代理作为副本。您可以看到所有分区的所有副本都在0和1上。没有其他经纪人有此主题的数据。
当您启动第三个代理时,它不会承载此主题的副本。所以它不可能成为领导者。
如果希望第三个代理也是副本,可以将复制因子扩展到3,例如https://kafka.apache.org/documentation/#basic_ops_increase_replication_factor
请注意,如果只有2个代理正在运行,则无法创建复制因子设置为3的主题。