纯干货 | 细说两阶段提交

事务的概念在这篇文章中描述过,在分布式系统中,读写位于多个节点的数据,如果依旧想保证ACID特性,就必须实现分布式事务。而其实现关键则是适当的提交协议,目前最简洁,且使用最广泛的无疑是两阶段提交协议(2PC)。

1.实现分布式事务关键组件

单机系统通过事务管理器(transaction manager,TM)实现本地事务。分布式系统中,需要协调多个节点的事务管理器,共同提交成功E x ` o G F L或失败,因此需要事务协调者(tr H s g S Y h y eransaction coordinator,TC)。一个R % ! e y 0 k _分布式事务管理器,可以粗略地划分为这两个子系统。这两个子系统根据自己在事务执行中扮演的角色8 y o Y g _ f C,也可称之为参与者协调者

本地事务管理器负责本机事务并发控制和异常3 A X 0恢复等功能,事务协调者负责开启事务,将事务划分为多个子事务分发到相应的节点执行,并t . j 6 ! l C H [协调事; c f U m S务完成(一起提交t ; K q $ W 9成功或失败)。