假设我有一个由 3 个代理和 3 个动物园管理员组成的 Kafka 集群。
我有一个主题accountsTopic
设置为replication factor of 3
和ISR of 2
。
如果Leader
死亡,kafka 将选举ISR
作为领导者,但第 3 个(为了论证而说不是 ISR(,它会在这个 2 节点故障转移设置中充当当前领导者的 ISR 吗?
领导者死亡时会发生什么取决于您的配置。
默认情况下,从0.11 开始,只能将同步副本中的一个选为领导者。如果没有副本同步,分区将脱机。这有利于一致性而不是可用性。
您可以在代理上设置unclean.leader.election.enable=true
,在这种情况下,如果没有副本同步,则将选择其中一个不同步的副本。这可能会导致数据丢失,但有利于可用性。当然,如果某些副本是同步的,它仍然会选择其中一个。