Apache kafka min.insync.Replicates vs.unclean.leader.election
我希望使用卡夫卡主题实现可靠的数据交付 如果我设置了Apache kafka min.insync.Replicates vs.unclean.leader.election,apache-kafka,Apache Kafka,我希望使用卡夫卡主题实现可靠的数据交付 如果我设置了min.insync.replicas=2,我是否可以不更改unclean.leader.election.enable(默认值为true)的默认值 或者我应该另外将unclean.leader.election.enable设置为false吗 如果min.insync.replications等于2,是否存在由于领导人选举不干净而导致数据丢失的风险?如果不设置该值,当然会采用默认值 不过,这些设置的用途不同;设置一个不会覆盖另一个 如果您有两
min.insync.replicas=2
,我是否可以不更改unclean.leader.election.enable
(默认值为true
)的默认值
或者我应该另外将unclean.leader.election.enable设置为false吗
如果min.insync.replications
等于2,是否存在由于领导人选举不干净而导致数据丢失的风险?如果不设置该值,当然会采用默认值
不过,这些设置的用途不同;设置一个不会覆盖另一个
如果您有两个同步副本(并且您的制作人已经确认了他们的所有消息),那么理论上,您将始终至少有一个干净的领导人可以当选 实际上,数据是否会丢失取决于具体情况。我可以通过场景来解释这一点:
min.insync.replicas=2 && unclean.leader.election.enable=true (It is default value)
在这种情况下,数据(消息3)将丢失。由于不干净的领导人选举是允许的,经纪人1被选为新的领导人,即使它与其他经纪人不同步。否则,尽管unclean.leader.election.enable是集群范围的设置,但您可以覆盖每个主题的此配置。
这个图像来自于书中
将允许非ISR副本成为领导者,确保可用性,但由于数据丢失,因此不保证一致性。Cloudera文档还提到了一些生产者和代理设置-
unclean.leader.election.enable=true