如何处理Replica全部宕机
当ISR中的Replica全部宕机时,可以通过如下方式处理:
-
1.等待ISR中任一Replica恢复,并选它为Leader。
缺点:等待时间较长,降低可用性(因为不能使用所有集群节点),因此或ISR中的所有Replica都无法恢复或者数据丢失,则该Partition将永不可用。 -
2 选择第一个恢复的Replica为新的Leader,无论它是否在ISR中。
缺点:并未包含所有已被之前Leader Commit过的消息(因为它不在之前的ISR中),因此会造成数据丢失,但是它提高了可用节点的范围,可用性比较高。
Kafka如何保证数据不丢失?
1.Producer:通过ACK应答机制保证数据不丢失
2.Broker:通过多副本机制保证数据不丢失
3.Consumer:通过记录offset保证数据不丢失