kafka如何保证生产者100%写入到broker?

開開新新 发表于: 2020-12-11   最后更新时间: 2020-12-13 00:36:35   1,266 游览

如果要保证生产者的消息100%到达broker,是否需要使用acks或是事务?
acks这种有办法只影响某个topic吗?

另外:kafka acks以及事务 幂等 这些 指的是 生产者到broker的范围,还是 生产者到消费者范围。

发表于 2020-12-11
添加评论

可以保证,但是会导致消息重复。

首先生产者和消费者各管各的,彼此之间没有任何关联。

某些超时的情况下,生产者向kafka集群发送消息,一直无响应,你是无法确认消息是否发送成功的,如果重新发送则会造成消息双份,如果不发就可能丢失了。

消费者也是,拿到消息后,提交offset的时候失败了,但是消息你已经处理过了,新的消费者也将会再次消费,如果你先提交offset在处理,则有可能刚提交offset,程序崩溃了,导致新的消费者跳过了这条消息。

综上,想要100%的话,可能会导致消费重复。

更多详情可参考:kafka消息传递保障

你的答案

查看kafka相关的其他问题或提一个您自己的问题