卡夫卡幂等生产者

2024-04-17

卡夫卡文档说,幂等生产者可以使用相同的生产者会话,但我无法理解这一点。

比如说,Kafka 为每条消息添加序列号,最后一个序列号保存在 Kafka 中(不确定它在哪里维护)。

它如何生成序列号以及它保存在哪里?

为什么当生产者崩溃并再次出现时它无法维持序列?

如何才能使其在生产者会话之间真正幂等?


幂等生产者仅在生产者进程的生命周期内有保证。如果崩溃,新的幂等生产者将具有不同的 ProducerId 并启动自己的序列。

序列号只是从 0 开始,并针对每个记录单调增加。如果记录传送失败,则会使用其现有序列号再次发送该记录,以便代理可以对其进行重复数据删除(如果需要)。序列号是每个生产者和每个分区的。

目前 Kafka 不提供“继续”幂等生产者会话的方法。每次启动时,它都会获得一个新的且唯一的 ProducerId(由集群生成)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

卡夫卡幂等生产者 的相关文章

随机推荐