10、Kafka事务

本文深入探讨Kafka的事务特性,包括生产者和消费者的事务操作,重点解析幂等性如何保障事务的原子性。通过介绍事务协调者、内部事务日志、控制消息和Transaction ID等关键概念,揭示Kafka如何实现跨Session的数据幂等发送。同时,讨论Producer ID和Sequence Number在确保消息不重复中的作用。
摘要由CSDN通过智能技术生成

只有Producer生产消息:
见生产者、消费者实战代码。

消费消息和生产消息并存:
这个是事务场景中最常用的情况,就是我们常说的“consume-transform-produce ”模式; 也应用到kafka stream应用中,从一个topic读取数据,处理数据,写回另一个 topic场景中。
见生产者、消费者实战代码。

只有消费者消费消息:
这种操作其实没有什么意义,跟使用手动提交效果一样,无法保证消费消息操作和提交偏移量操作在一个事务。

kafka事务属性
是指一系列的生产者生产消息和消费者提交偏移量的操作在一个事务,或者说是是一个原子操作),同时成功或者失败。

事务属性实现前提是幂等性,即在配置事务属性transaction id时,必须还得配置幂等性
幂等性引入了Porducer ID
事务属性引入了Transaction ID属性。

enable.idempotence = true,transactional.id		不设置:	只支持幂等性。
enable.idempotence = true,transactional.id		设置:	支持事务属性和幂等性
enable.idempotence = false,transactional.id	不设置:	没有事务属性和幂等性的kafka
enable.idempotence = false,transactional.id	设置:	无法获取到PID,此时会报错

有了transactio

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值