本文主要是介绍我的架构梦:(八十七)消息中间件之Kafka的事务机制,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
欢迎大家关注我的公众号【老周聊架构】,Java后端主流技术栈的原理、源码分析、架构以及各种互联网高并发、高性能、高可用的解决方案。
一、事务场景
-
发的多条消息组成一个事务,这些消息需要对同时可见或者同时不可见。
-
producer
可能会给多个topic
,多个partition
发消息,这些消息也需要能放在一个事务里面,这就形成了一个典型的分布式事务。 -
kafka
的应用场景经常是应用先消费一个topic
,然后做处理再发到另一个topic
,这个consume-transform-produce
过程需要放到一个事务里面,比如在消息处理或者发送的过程中如果失败了,消费偏移量也不能提交。 -
producer
或者producer
所在的应用可能会挂掉,新的producer
启动以后需要知道怎么处理之前未完成的事务 。 -
在一个原子操作中,根据包含的操作类型,可以分为三种情况,
前两种情况是事务引入的场景
,最后一种没用。- 只有
producer
生产消息 - 消费消息和生产消息并存,这个是事务场景中最常用的情况,就是我们常说的
consume transform produce
模式。 - 只有
consumer
消费消息&#x
- 只有
这篇关于我的架构梦:(八十七)消息中间件之Kafka的事务机制的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!