分布式事务之 Seata
前言
在企业应用程序开发中,随着分布式框架发展,我们生产环境会有会很多数据库的实例,特别是在微服务领域中,我们会设计每个业务Service模块都会对应一个自身业务模块的DB存储节点。然后再对这个DB存储节点做高可用部署。
事务问题
那么我们在编写Service中的业务逻辑时,肯定会遇到一个业务操作会远程调用到其他不同的业务模块,那么对应的产生数据就会落盘到不同的存储节点中,为了保障多个数据库实例之间的事物ACID特性,就遇到了分布式事务的问题。
分布式事务
1、如果整个业务调用链路均成功,那么整个调用链路对应的数据库做事物提交。
2、如果调用链路中抛出了异常,那么整个调用链路对应的数据库做回滚操作。
Seata
在Seata分布式事务解决方案中,一般有以下这些角色:
RM (Resource Manager) 管理分支事务处理的资源,与TC交谈以注册分支事务和报告分支事务的状态,并驱动分支事务提交或回滚。
TC (Transaction Coordinator) - 事务协调者
TM (Transaction Manager) - 事务管理器,AP上