RocketMQ——事务消息机制
一、事务消息概述
2018 年 07 月 24 日,RocketMQ 社区发布 4.3.0 版本,开始正式支持事务消息。
事务消息的实现方案目前分为2种:
RocketMQ 采取了两阶段提交的方案进行实现。
我们在说到事务时,通常会想到关系型数据库的事务,支持 ACID 四个特性。
-
- A,Atomicity,原子性。操作是一个不可分割的整体,要么都执行成功,要么都执行失败。
- C,Consistency,一致性。事务操作前后,数据必须是一致性的。
- I,Isolation,隔离性。多个事务同时执行时,不能互相干扰。
- D,Durability,持久性。一旦事务被提交,数据改变就是永久的,即使数据库宕机等都不会改变。
分布式事务是指在多个系统或多个数据库中的多个操作要么全部成功,要么全部失败,并且需要满足 ACID 四个特性。
二、事务消息机制
我们将事务消息的发送和处理总结为 4 个过程:
-
- 生产者发送事务消息
- 执行本地事务
- Broker回查事务消息
- Broker提交或者回滚事务消息
2.1 生产者发送事务消息和执行本地事务
事务消息的发送过程分为两个阶段:
-
- 第一阶段,发送事务消息
- 第二阶段,发送 endTransaction 消息
Broker 发送事务消息的过程,如下图所示:
RocketMQ(4.8.0)——事务消息机制
原文:https://www.cnblogs.com/zuoyang/p/14468437.html