说一下 Kafka 中关于事务消息的实现?

面试

  1. 事务开启:当生产者开始一个事务时,它会向 Kafka 集群中的事务协调者(通常是 Broker 的一部分)发送一个 请求。事务协调者将这个事务记录到专门的事务日志中。
  2. 消息发送:生产者随后可以发送一系列消息,这些消息会被标记为事务的一部分。与 RocketMQ 不同,Kafka 并不会让这些消息立即对消费者可见;相反,它们会被暂时隔离。
  3. 预提交:当生产者完成了所有的消息发送后,它可以向事务协调者发送一个预提交请求。事务协调者会在事务日 志中标记该事务的状态为预提交,并通知相关分区。
  4. 事务提交/回滚:生产者接着发送最终的提交或回滚请求给事务协调者。如果选择提交,协调者会完成两阶段提 交过程: •第一阶段:将事务状态更新为预提交,并将此更改写入事务日志。 • 第二阶段:向所有参与事务的分区发送一条特殊的控制消息,指示事务已经提交。消费者只有在看到这条控 制消息后才会消费属于该事务的消息。
  5. 事务结束:一旦提交过程完成,事务协调者会在事务日志中记录事务的最终状态,表明事务已经成功结束或者被 回滚。
相关推荐
学者猫头鹰12 小时前
分布式事务实战教程
java·分布式
笨蛋不要掉眼泪14 小时前
RabbitMQ消息队列:MQ的可靠性
分布式·rabbitmq·java-rabbitmq
zcmodeltech18 小时前
农业教学实训沙盘物联网控制系统设计:基于STM32与Modbus RTU的“感知-控制-实训”一体化方案
分布式·stm32·嵌入式硬件·物联网
java1234_小锋19 小时前
【免费】基于Spark实时交通流量分析与拥堵预测系统(Java版本+可视化大屏+Kafka+SpringBoot+Vue3) 锋哥原创出品,必属精品
java·大数据·spark·kafka·实时交通流量分析与拥堵预测
敲个大西瓜20 小时前
Kafka一百道核心面试题
kafka
ACP广源盛1392462567321 小时前
GSV6155@ACP# Type-C 视频信号转换芯片:技术架构、工程痛点适配与落地场景分析
大数据·c语言·开发语言·人工智能·分布式·嵌入式硬件·架构
平行侠1 天前
校园分布式智算与模型对攻赛(DormMesh Clash)可行性分析
人工智能·分布式
后端观测站1 天前
第三篇:消息队列如何保证消息可靠性?
kafka·java-rocketmq
笨蛋不要掉眼泪2 天前
RabbitMQ消息队列:发送者的可靠性
java·分布式·rabbitmq
AAA@峥2 天前
Ceph 分布式文件系统 CephFS 实战指南
运维·分布式·ceph