因此,如果复制因子为4,ISR为3,并且生产者ACK被设置为全部,那么生产者将等待多少个ACK?我尝试了不同的场景,真正的行为应该是什么?
谈到问题时,设置主题本身的复制因子并不重要。如生产者配置documentation中所述:
min.insync.replicas:当生产者将acks设置为“ all”(或“ -1”)时,min.insync.replicas指定必须确认一次写入才能使成功视为成功的最小副本数。 。如果无法满足此最小值,则生产者将引发异常(NotEnoughReplicas或NotEnoughReplicasAfterAppend)。一起使用时,min.insync.replicas和acks可使您实施更大的耐用性保证。典型的情况是创建一个复制因子为3的主题,将min.insync.replicas设置为2,并产生“ all”。如果大多数副本未收到写入,这将确保生产者引发异常。类型:int默认值:1有效值:[1,...]重要性:高更新模式:群集范围
回答您的具体问题:它将等待3个确认。