分布式事务
一个微服务同时调用多个微服务,每个微服务的本地事务,也可以称为分支事务。多个有关联的分支事务一起就组成了全局事务。
每个微服务有自己独立的数据库,只能实现自身的ACID,无法实现整体的ACID
Seata
阿里巴巴的开源的分布式事务框架,保证全局事务下的所有分支事务同时成功或失败。
事务管理中的三个重要的角色:
TC(Transaction Coordinator) - 事务协调者:维护全局和分支事务的状态,协调全局事务提交或回滚。TM(Transaction Manager) - 事务管理器:定义全局事务的范围、开始全局事务、提交或回滚全局事务。RM(Resource Manager) - 资源管理器:管理分支事务,与TC交谈以注册分支事务和报告分支事务的状态,并驱动分支事务提交或回滚。
其中,TM和RM可以理解为Seata的客户端部分,引入到参与事务的微服务依赖中即可。将来TM和RM就会协助微服务,实现本地分支事务与TC之间交互,实现事务的提交或回滚。
而TC服务则是事务协调中心,是一个独立的微服务,需要单独部署。