在信息时代的网络环境下,如何保证业务数据的正确性,成为重要的核心点,而数据库产品在业务数据中提供了一套完整的策略机制(原子性,一致性,隔离性,持久性),业务程序不管与数据库是单次单表交互(程序数据与数据表可能构成一个业务的原子性)还是多次多表交互(业务数据分散在多表中通过多次协议交换),事务充当了业务数据完整性很重要的角色。
本地事务 :大部分数据库自身携带事务特征,业务不需要切入业务事务的保障。
分布式事务 :各自的数据库只能保证本库的表事务,而涉及多库之间的业务数据表一致,显得难以控制实现极其复杂,如果以各自的数据库事务为基础,在此基础上构建一套事务协调系统,那么分布式数据源事务控制就变得特别简单。
Seata事务模式架构
Seata 定义了全局事务的框架。全局事务 定义为若干 分支事务 的整体协调:
- TM 向 TC 请求发起(Begin)、提交(Commit)、回滚(Rollback)全局事务。
- TM 把代表全局事务的 XID 传递到各个业务服务的分支事务上。
- RM 向 TC 注册,把分支事务关联到 XID 代表的全局事务中。
- RM 把分支事务的执行结果上报给 TC。
- TC 发送分支提交(Branch Commit)或分支回滚&#