kafka中数据发送保障

        为保证producer发送的数据,能可靠的发送到指定的topictopic的每个partition收到producer发送的数据后,都需要向producer发送ackacknowledgement确认收到),如果producer收到ack,就会进⾏下⼀轮的发送,否则重新发送数据。

副本数据同步策略
方案
优点
缺点
半数以上完成同步,就发送ack
延迟低
选举新的leader时,容忍n台节点故障,需要2n+1个副本
全部完成同步,才 发送ack
选举新的leader时,容忍n台节点的故障,需要n+1个副本
延迟⾼
Kafka选择了第⼆种⽅案,原因如下:
1.同样为了容忍n台节点的故障,第⼀种⽅案需要2n+1个副本,⽽第⼆种⽅案只需要n+1个副本,⽽Kafka的每个分 区都有⼤量的数据,第⼀种⽅案会造成⼤量数据的冗余。
2.虽然第⼆种⽅案的⽹络延迟会⽐较⾼,但⽹络延迟对Kafka的影响较⼩。
2ISR
        采⽤第⼆种⽅案之后,设想以下情景:leader收到数据,所有follower都开始同步数据,但有⼀个follower,因为某种故障,迟迟不能与leader进⾏同步,那leader就要⼀直等下去,直到它完成同步,才能发送ack。这个问题怎么解决呢?
        Leader维护了⼀个动态的in-sync replica set (ISR),意为和leader保持同步的follower集合。当ISR中的follower完成数据的同步之后,leader就会给follower发送ack。如果follower⻓时间未向leader同步数据,则该follower将被踢出ISR,该时间阈值由replica.lag.time.max.ms参数设定。Leader发⽣故障之后,就会从ISR中选举新的leader。
注:
  • ⽣产者发送到特定主题分区的消息是将按照发送的顺序来追加。也就是说,如果消息M1和消息M2由相同的⽣产者发送,并且M1是先发送的,那么M1的偏移量将⽐M2低,并出现在⽇志的前⾯。
  • 消费者是按照存储在⽇志中记录顺序来查询消息。
  • 对于具有n个副本的主题,我们将容忍最多N-1个服务器失败故障,从⽽不会丢失提交到⽇志的任何消息记录。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值