13 全局事务和共享事务是如何实现的?
你好,我是周志明。今天,我们一起来学习全局事务(Global Transactions)和共享事务(Share Transactions)的原理与实现。
其实,相对于我们前两节课学习的本地事务,全局事务和共享事务的使用频率已经很低了。但这两种事务类型,是分布式事务(下一讲要学习)的中间形式,起到的是承上启下的作用。
所以,我们还是有必要去理解它们的实现方式,这样才能更透彻地理解事务处理这个话题。
接下来,我们就从全局事务学起吧。
全局事务
与本地事务相对的是全局事务,一些资料中也会称之为外部事务(External Transactions)。在今天这一讲,我会给全局事务做个限定:一种适用于单个服务使用多个数据源场景的事务解决方案。
需要注意的是,理论上,真正的全局事务是没有“单个服务”这个约束的,它本来就是DTP(Distributed Transaction Processing)模型中的概念。那我为什么要在这一讲给它做个限定呢?
这是因为,我们今天要学习的内容,也就是一种在分布式环境中仍追求强一致性的事务处理方案,在多节点互相调用彼此服务的场景(比如现在的微服务)中是非常不合适的。从目前的情况来看,这种方案几乎只实际应用在了单服务多数据源的场景中。