Kafka学习笔记 --- 如何实现Kafka消息的Exactly-Once

本文详细探讨了Kafka如何实现Exactly-once语义,包括idempotent Producer设计、Transactional Messaging以及Message Format的改变。介绍了PID分配、事务协调器、Consumer的Pending缓冲区等关键概念,以确保消息的原子性、持久性和顺序性。
摘要由CSDN通过智能技术生成

对于这个问题我们先来看一下一个笑话:

 

 

 

可以这样的实现

 

kafka设计思想:

Kafka 0.11.0 版本之前并不能保证Exactly-once的语义,只能保证 at-least-once or  at-most-once。实际运用中我们并不希望数据丢失,当网络出现问题的时候,我们都会选择重试,所以一般会保证at-least-once。

 

 

下面从三个点来讲解:

 

  • idempotent Producer 设计

  • Transactional Messaging in Kafka 设计

  • Message format 改变

 

1.Idempotent Producer

我们要保证 Producer 发送数据幂等性,可以给每条数据分配一个UUID,Server 端存储所有的id。接收到数据的时候进行检测&#

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

杨鑫newlfe

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值