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

面试

  1. 事务开启:当生产者开始一个事务时,它会向 Kafka 集群中的事务协调者(通常是 Broker 的一部分)发送一个 请求。事务协调者将这个事务记录到专门的事务日志中。
  2. 消息发送:生产者随后可以发送一系列消息,这些消息会被标记为事务的一部分。与 RocketMQ 不同,Kafka 并不会让这些消息立即对消费者可见;相反,它们会被暂时隔离。
  3. 预提交:当生产者完成了所有的消息发送后,它可以向事务协调者发送一个预提交请求。事务协调者会在事务日 志中标记该事务的状态为预提交,并通知相关分区。
  4. 事务提交/回滚:生产者接着发送最终的提交或回滚请求给事务协调者。如果选择提交,协调者会完成两阶段提 交过程: •第一阶段:将事务状态更新为预提交,并将此更改写入事务日志。 • 第二阶段:向所有参与事务的分区发送一条特殊的控制消息,指示事务已经提交。消费者只有在看到这条控 制消息后才会消费属于该事务的消息。
  5. 事务结束:一旦提交过程完成,事务协调者会在事务日志中记录事务的最终状态,表明事务已经成功结束或者被 回滚。
相关推荐
Flynt6 小时前
Redis Cluster主节点挂了,为什么"高可用"还全员掉线?我把三次kill的记录翻出来了
数据库·redis·分布式
JosieBook8 小时前
【数据库】MySQL 实战精通系列 · 第10篇:分库分表与分布式事务实战
数据库·分布式·mysql
梦帮科技11 小时前
vLLM / TensorRT-LLM 极限推理:PagedAttention 细粒度物理页表管理与连续批处理(Continuous Batching)实战
数据结构·人工智能·分布式·python·深度学习·算法·vllm
用户14944848132013 小时前
同为消息队列,RocketMQ 和 Kafka 的底层设计差在哪?
kafka
Frank_refuel16 小时前
分布式RPC框架实战(二):服务端模块划分与底层设计
分布式·网络协议·rpc
开开心心就好16 小时前
办公软件卸载不干净?专用工具一键清残留
java·前端·人工智能·智能手机·kafka·excel·memcache
mftang1 天前
EtherCAT协议:从“飞读飞写”机制到分布式时钟同步的实时以太网架构深度解析
分布式·架构·ethercat·分布式时钟·从站控制器
ShineWinsu2 天前
对于Redis:Hash类型的解析
c++·redis·分布式·缓存·面试·hash·哈希表
东方芷兰2 天前
Agent 技术摘要 03 —— 基座模型、推理模型、Flash、联邦学习、分布式机器学习
人工智能·分布式·机器学习
程序猿乐锅2 天前
【黑马点评 | 第十一篇】关注 Feed 流实现
java·数据库·redis·分布式·后端·缓存·maven