简述:
Seata 是一款开源的分布式事务解决方案,致力于提供高性能和简单易用的分布式事务服务。Seata 将为用户提供了 AT、TCC、SAGA 和 XA 事务模式,为用户打造一站式的分布式解决方案
参考seata示例:
用户购买商品的业务逻辑。整个业务逻辑是由三个微服务提供支持:
* 仓库服务: 给对定的商品扣除仓库数量
* 订单服务: 根据采购需求创建订单
* 账户服务: 从用户账户中扣除余额
在这个示例中,每个服务都将具备事物的特性都能保证各自数据的一致性,但是当仓库中库存数量不足时,需要回滚该事务,但是无法通知其他订单服务和账户服务,所以导致用户没有购买到,但是钱被扣除。出现了数据不一致的情况,在这种情况下,传统的事务将无法解决问题,所以分布式事务被提出,很好的解决了这种数据不一致的情况。所有的事务要不都被回滚,要不都被提交,这样保证数据的一致性。到这里提到了二阶段提交,这是非常优秀的分布式事务处理方案:
二阶段提交:
定义:二阶段提交是基于分布式系统架构下所有节点在进行事务提交时保持一致性而设计的一种算法。
该协议是由一个协调者和多个参与者组成
流程:二阶段提交将一个