方式一:半数以上副本完成同步,Leader就发送ack。
方式二:全部副本完成同步,Leader才发送ack。
怎么理解这两种情况呢?
首先我们要想到要容忍n台节点的故障是指,当生产者收到leader的ack之后,n台副本节点挂掉了,此时还幸存有效副本,最小幸存副本节点为1。
则方式一,需要2n+1个副本,因为有至少n+1个副本完成了同步,就算这些完成同步的副本所在的节点有n台出现故障,也至少有1台节点的副本有已经同步的数据;
而方式二只需要n+1个副本,因为这n+1个副本都完成了同步,有n台节点出现故障,也还有1台节点正常。