kafka学习六-数据可靠性保证

1 副本数同步策略

1.1 半数以上完成同步就发送ACK

优点:延迟低
缺点:选取新leader时,容忍n台节点故障,需要2n+1个副本

1.2 全部完成同步才发送ack

优点:选取新leader时,容忍n台节点故障,需要n+1个副本
缺点:延迟高
kafka选取的是第二种

2 ISR

采用第二种方案后,有如下场景,leader收到数据,所有的follower都开始同步数据,但是有一个follower由于故障迟迟不能与leader进行同步,那么leader就要一直等待
为了解决这个问题,leader维护了一个动态的ISR(In-Sync Replicas的缩写,表示副本同步队列),意为和leader保持同步的follower集合。当ISR中的follower完成数据同步后leader就会发送ack。
如果follower长时间未和leader同步数据,则该follower会被踢出ISR,该时间阈值由 replica.lag.time.max.ms配置。当leader发生故障后,就会从ISR中选取新的leader

3 生产者ACK

    0:代表 leader 接收到消息马上 返回ack(不需要写入磁盘),效率最高,但安全性最低,生产者没有重试机制,故障时有可能丢失数据
    1:(默认值)代表 leader 接收到消息,且落盘成功后 返回ack,生产者有重试机制。效率和安全性都适中。如果follower同步成功之前leader故障,则有可能丢失数据
    -1(all):procedure等待broker的ack,partition的leader和follower落盘成功后返回ack。
    如果follower同步成功后,broker发送ack之前,leader故障,生产者没受到broker的ACK会再次发送,则有可能造成数据重复。
    极限情况,如果ISR中只有leader没有follower,则退化到=1的场景,也有可能丢失数据。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值