一、解决的问题
seata的出现是为了更好的解决分布式事务的问题,相比于之前的单机库,服务只操作一个数据库的时候,用我们大家熟悉的@Transactional注解就能做好一些单一事务的控制。但是微服务架构之后,各个服务所调用的数据库可能不一致,就造成了一个服务对应多个数据库或者多个服务对应多个数据库的情况,就会出现下图的情况:
一句话来说,一次业务操作需要跨多个数据源或需要跨多个系统进行远程调用,就会产生分布式事务问题。
二、Seata简介
seata官网文档:http://seata.io/zh-cn/docs/overview/what-is-seata.html
1、Seata 是什么?
Seata 是一款开源的分布式事务解决方案,致力于提供高性能和简单易用的分布式事务服务。Seata 将为用户提供了 AT、TCC、SAGA 和 XA 事务模式,为用户打造一站式的分布式解决方案。
2、三大组件
TC (Transaction Coordinator)- 事务协调者 维护全局和分支事务的状态,驱动全局事务提交或回滚。
TM (Transa