单体应用被拆分成了微服务应用,原本一个服务三个模块,被拆分成了三个独立的应用,并且分别使用三个独立的数据源,业务操作需要调用三个服务完成,此时每个服务内部的数据一致性由本地事务来保证,但是全局的数据一致性问题没法保证。

随着互联网的快速发展,软件系统由原来的单体应用转变为分布式应用,下图描述了单体应用向微服务的演变:
image.png
分布式系统会把一个应用系统拆分成可独立部署的多个服务,因此需要服务与服务之间远程协作才能完成事务操作,这种分布式系统环境下由不同的服务之间通过网络远程协作完成事务称之为分布式事务,例如用户注册送积分事务、创建订单减库存事务,银行转账事务等都是分布式事务。

先看本地事务:

image.png

再看分布式事务:

image.png
因此在分布式架构的基础上,传统的数据库事务就无法使用了,因为张三和李四并不在意一个数据库中,由于网络原因就会导出分布式事务的问题