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

面试

  1. 事务开启:当生产者开始一个事务时,它会向 Kafka 集群中的事务协调者(通常是 Broker 的一部分)发送一个 请求。事务协调者将这个事务记录到专门的事务日志中。
  2. 消息发送:生产者随后可以发送一系列消息,这些消息会被标记为事务的一部分。与 RocketMQ 不同,Kafka 并不会让这些消息立即对消费者可见;相反,它们会被暂时隔离。
  3. 预提交:当生产者完成了所有的消息发送后,它可以向事务协调者发送一个预提交请求。事务协调者会在事务日 志中标记该事务的状态为预提交,并通知相关分区。
  4. 事务提交/回滚:生产者接着发送最终的提交或回滚请求给事务协调者。如果选择提交,协调者会完成两阶段提 交过程: •第一阶段:将事务状态更新为预提交,并将此更改写入事务日志。 • 第二阶段:向所有参与事务的分区发送一条特殊的控制消息,指示事务已经提交。消费者只有在看到这条控 制消息后才会消费属于该事务的消息。
  5. 事务结束:一旦提交过程完成,事务协调者会在事务日志中记录事务的最终状态,表明事务已经成功结束或者被 回滚。
相关推荐
名字还没想好☜6 小时前
用 Redis + Redisson 实现分布式锁:从踩坑到生产可用
java·redis·分布式·junit·分布式锁·redisson
qiu_lovejun9986 小时前
linux安装docker和redis和rabbitmq和nginx和rocketmq和kafka
linux·redis·docker·kafka·rabbitmq·rocketmq
董可伦7 小时前
Spark 源码 | SparkSubmitArguments 参数解析(三)
大数据·分布式·spark
运维行者_8 小时前
广域网性能监控:分布式IT架构下的链路质量保障
开发语言·网络·分布式·后端·架构·数据库架构
她说可以呀8 小时前
RabbitMQ Confirm与Returns模式
分布式·rabbitmq
Mr__Miss9 小时前
Session、Cookie、JWT 详解:从单体到分布式的认证方案演进
分布式
Database_Cool_9 小时前
阿里云 PolarDB-X vs OceanBase 国产分布式数据库深度对比
分布式·阿里云·oceanbase
她说可以呀10 小时前
RabbitMQ重试机制
分布式·rabbitmq
wuqingshun31415910 小时前
RabbitMQ 中消息什么时候会进入死信交换机?
分布式·rabbitmq