Kafka之ACK机制

本文介绍了Kafka的ACK机制,包括acks=0、1和-1(all)三种模式。acks=0时不保证消息可靠性但传输效率高;acks=1时消息可能丢失;acks=-1(all)要求所有副本确认,确保数据不丢失,但需配合min.insync.replicas参数使用以防止数据丢失。
摘要由CSDN通过智能技术生成
  • acks一般常设置三种值

request.required.acks = 0、1和-1(all)

  • acks=0
  • KafkaProducer把消息发送出去,不需要等待任何确认收到的消息,没有任何保障可以保证此种情况下server已经成功接收到数据,同时重试配置也不会发生作用(因为KafkaProducer并不知道此次发送是否失败)。
  • 该情况,当数据已经发送出去,还在半路,此时leader挂了,但是producer还是认为消息发送成功了,这个时候就会导致这条消息丢失;
  • 数据可靠性是最低的,传输效率也是最高的
  • acks=1(默认)
  • KafkaProducer把消息发送出去,至少要等待leader已经成功将数据写入本地log,但是并没有等待所有follower是否成功写入。该情况下,如果follower没有成功备份数据,而此时leader刚好又挂掉了,就会导致消息丢失
  • acks=-1/all
  • KafkaProducer把消息发送出去,这要求ISR列表离跟leader保持同步的那些follower都要吧消息同步过去,才能认为这条消息是写入成功的。
  • 如果leader接受到数据了,但是follower还未同步数据,此时leader宕机了,那么producer会感知这个消息没有发送成功,会重试再次发送消息过去;此时
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值