随着各种微服务分布式的流行,单体应用被拆分成微服务应用,原来的三个模块被拆分成三个独立的应用,分别使用三个独立的数据源,业务操作需要调用三个服务来完成。此时每个服务内部的数据一 致性由本地事务来保证,但是全局的数据 致性问题没法保证。
一次业务操作需要跨多个数据源或需要跨多个系统进行远程调用,就会产生分布式事务问题,这也就引出我们的Seata来进行处理分布式事务了~
Seata简介
Seata 是一款开源的分布式事务解决方案,致力于提供高性能和简单易用的分布式事务服务。Seata 将为用户提供了 AT、TCC、SAGA 和 XA 事务模式,为用户打造一站式的分布式解决方案。在 Seata 开源之前,Seata 对应的内部版本在阿里经济体内部一直扮演着分布式一致性中间件的角色,帮助经济体平稳的度过历年的双11,对各BU业务进行了有力的支撑。经过多年沉淀与积累,商业化产品先后在阿里云、金融云进行售卖。2019.1 为了打造更加完善的技术生态和普惠技术成果,Seata 正式宣布对外开源,未来 Seata 将以社区共建的形式帮助其技术更加可靠与完备。
http://seata.io/zh-cn/docs/overview/what-is-seata.html里面有详细解释AT、TCC模式等详解
一个典型的分布式事务过程有 :分布式事务处理过程的ID+三组件模型组成
Transaction ID XID :全局唯一的事务ID
TC组件:事务协调者 Transaction Coordinator(TC)
- 维护全局和分支事务的状态,驱动全局事务提交或回滚 :比如说主播老师,或者seate服务
TM组件:事务管理器 Transaction &