3.12. 未清理领导选举机制
同步副本的领导选举被视为干净的,因为它无法保证数据丢失。这是默认发生什么。但是,如果没有同步的副本来参与领导?ISR (同步副本)可能仅在领导磁盘结束时才会包含领导。如果没有设置最小同步的副本,且在硬盘失败时没有与分区领导同步的遵循者,则数据已经丢失。不仅如此,新的领导产品也无法被选举,因为没有同步的跟随者。
您可以配置 Kafka 如何处理领导失败:
... ...
# ...
unclean.leader.election.enable=false
# ...
默认禁用未清理领导选举机制,这意味着没有同步的副本无法成为领导。使用清理领导选举机制时,如果没有其他代理在旧的领导机丢失时位于 ISR 中,Kafka 会在可以写入或读取信息前等待该领导重新上线。Unclean leader 选举意味着没有同步的副本可能会成为领导状态,但您会面临丢失消息的风险。您做出的选择取决于您的要求是否优先可用性。
您可以在主题级别上覆盖特定主题的默认配置。如果您无法牺牲数据丢失的风险,则保留默认配置。