3.6 Kafka Producer API之消息传递保障

1.传递保障
在一个分布式发布订阅消息系统中,组成系统的计算机总会由于各自的故障而不能正常工作。在Kafka中,一个单独的broker,可能会在生产者发送消息到一个topic的时候宕机,或出现网络故障,从而导致生产者发送消息失败。
kafka提供了三种传递保障来解决上述问题,其依赖producer和consumer共同实现,主要依赖producer,在代码中由“properties.put(ProducerConfig.ACKS_CONFIG, “all”);”体现,配置的值有以下三种情况(server完成producer request前需要确认的数量)。
(1).0
最多一次,server收到0或者1次消息,producer消息发出后,不会等待server的响应,也不会重发,无法保证消息是否成功发送到broker中。
(2).1
正好一次,最严格的,收到1次消息。producer发送消息时,会带上一个transactionId,server接收到之后,会进行去重,如果存储过则会拒绝。如果server没有响应,producer会把transactionId和消息重新发一遍。

(3).all或者-1
至少一次,server收到1次或者多次消息,producer发出消息后一定要等待server的响应,如果生产者没有得到server的响应则会重发。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值