kafka消息是否会丢失?为什么?

kafka消息语义交付:
  • 最多一次(at most once):消息可能丢失也可能被处理,但最多只能被处理一次。
  • 至少一次(at least once):消息不会丢失,但可能被处理多次。
  • 精确一次(exactly once):消息被处理且只会被处理一次。
ACKS

  acks参数用于控制producer生产消息的持久性(durability)。对producer而言,kafka在乎的是已提交消息的持久性。一旦消息被提交成功,那么只要有任何一个保存了消息的副本存活,这条消息被视为不会丢失的
  acks有3个值:0,1,all(-1)

  • acks=0:producer不进行消息接收是否成功的确认。
  • acks=1(默认):当Leader副本接收成功后,返回接收成功确认信息;
  • acks=all或者-1:当Leader和Follower副本都接收成功后,返回接收成功确认信息。

  从上面acks的设置中可以知道,当acks=0时,一旦发生宕机,肯定会发生消息丢失的情况;acks=1时,只要leader broker一直存活,kafka能够保证消息不丢失;acks=all时,只要还有副本存活,那么这条消息肯定不会丢失。

无消息丢失配置

参考apache kafka实战4.6,6.4章节

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值