【发布时间】:2018-12-27 00:41:50
【问题描述】:
例如,我有三个副本:replica1(leader),replica2(follower),replica3(follower)。但是现在领导者和追随者之间存在滞后,领导者现在已经死了。
所以关注者没有最新消息(因为滞后)。 那么kafka怎么选举新的leader,不管怎样,都会有数据丢失,那么kafka是怎么处理的呢。
【问题讨论】:
标签: apache-kafka
例如,我有三个副本:replica1(leader),replica2(follower),replica3(follower)。但是现在领导者和追随者之间存在滞后,领导者现在已经死了。
所以关注者没有最新消息(因为滞后)。 那么kafka怎么选举新的leader,不管怎样,都会有数据丢失,那么kafka是怎么处理的呢。
【问题讨论】:
标签: apache-kafka
unclean.leader.election.enable 配置属性默认设置为true。它允许 out-of-snyc 副本成为领导者。如果允许不同步的副本成为新的leader,是的,会丢失一些数据,也会导致Consumer的一些不一致。
如果不允许不同步的副本,则分区将保持离线状态,直到旧的领导者重新在线。
简单来说,设置unclean.leader.election.enable的值,就是在数据丢失和可用性之间做出选择!
希望对你有帮助。
谢谢。
【讨论】:
unclean.leader.election.enable 现在默认禁用!见kafka.apache.org/documentation/#upgrade_1100_notable