怅然|消息队列之事务消息,RocketMQ 和 Kafka是如何做的?( 五 )
Kafka 的事务有事务协调者角色 , 事务协调者其实就是 Broker 的一部分 。
在开始事务的时候 , 生产者会向事务协调者发起请求表示事务开启 , 事务协调者会将这个消息记录到特殊的日志-事务日志中 , 然后生产者再发送真正想要发送的消息 , 这里 Kafka 和 RocketMQ 处理不一样 , Kafka 会像对待正常消息一样处理这些事务消息 , 由消费端来过滤这个消息 。
然后发送完毕之后生产者会向事务协调者发送提交或者回滚请求 , 由事务协调者来进行两阶段提交 , 如果是提交那么会先执行预提交 , 即把事务的状态置为预提交然后写入事务日志 , 然后再向所有事务有关的分区写入一条类似事务结束的消息 , 这样消费端消费到这个消息的时候就知道事务好了 , 可以把消息放出来了 。
最后协调者会向事务日志中再记一条事务结束信息 , 至此 Kafka 事务就完成了 , 我拿 confluent.io 上的图来总结一下这个流程 。
最后至此我们已经知道了 RocketMQ 和 Kakfa 的事务消息全流程 , 可以看到 RocketMQ 的事务消息才是我们想要的 , 当然你要是用的流式计算那么 Kakfa 的事务消息也是你想要的 。
需要贴代码的文章其实很难受 , 这贴的多不好 , 贴的少又怕不清晰 , 真的难 , 如果觉得文章不错记得点个在看哟 。
点分享
推荐阅读
- 湖人队|狂轰62+21+13!浓眉太无解,詹姆斯后仰杀死比赛,湖人却获坏消息!
- 智通财经|| 远洋服务向港交所递表 在管面积约4230万平方米,新股消息
- 第一财经|免税概念利好消息频出,机构看好板块未来强劲增长丨牛熊眼
- 第一财经|新力控股联席董事长陈凯传出离职消息
- 带你逛服贸 | 文化服务专题展 规模大、颜值高、创意多
- 山东鲁能|山东鲁能迎来好消息,“大鱼”正积极运作,李霄鹏乐坏了
- 财经|新力控股联席董事长陈凯传出离职消息
- 半年|新力控股联席董事长陈凯传出离职消息
- 中国军备|外媒大胆预测,今年下半年中国将迎来三个好消息,每个都举世瞩目
- 华光环能|好消息!华光环能:子公司中标污水处理总承包项目
