最小异步副本属性是否会影响kafka中的使用者

时间:2019-07-27 10:21:45

标签: apache-kafka kafka-consumer-api

我的3节点群集具有配置min.insync.replicas=2default.replication.factor=3。 如果我只在一个经纪人在场的情况下尝试生产,那我就失败了。 但是,如果我仅在有1个代理可用时尝试使用,则使用方仍然可以使用消息。看来min.insync.replicas=2不适用于消费者。是知道行为还是我错过了什么?

1 个答案:

答案 0 :(得分:1)

min.insync.replicas指定了必须确认一次写入才能将其视为成功的最小副本数,因此,它对负责写入的生产方具有影响。此配置参数对消费者方没有任何直接影响,这就是为什么它不影响消费者的原因,即使有效经纪人的数量小于min.insync.replicas的值。

根据documentation

  

当生产者将acks设置为"all"(或"-1")时,min.insync.replicas   指定必须确认写入的最小副本数   认为写入成功。如果不能达到这个最小值   遇到,那么制片人会提出一个例外(   NotEnoughReplicasNotEnoughReplicasAfterAppend)。使用时   min.insync.replicasacks一起使您可以执行更大的任务   耐用性保证。一个典型的场景是创建一个主题   复制因子为3时,将min.insync.replicas设置为2,然后   产生acks中的"all"。这将确保生产者提高   如果大多数副本未收到写入,则为例外。