什么是分布式事务
事务是一个程序执行单元,里面的所有操作要么全部执行成功,要么全部执行失败。在分布式系统中,这些操作可能是位于不同的服务中,那么如果也能保证这些操作要么全部执行成功要么全部执行失败呢?这便是分布式事务要解决的问题。
CAP
一致性、可用性、分 区容忍性
- 刚性事务(CP)
遵循ACID,对数据要求强一致性
- 柔性事务(AP)
遵循BASE,允许一定时间内不同节点的数据不一致,但要求最终一致。
分布式刚性事务
两阶段提交
对应技术上的 XA、JTA/JTS。这是分布式环境下事务处理的 典型模式。
三阶段提交
三段提交(3PC)是对两段提交(2PC)的一种升级优化,3PC在2PC的第一阶段和第二阶段中插入一个准备阶段。保证了在最后提交阶段之前,各参与者节点的状态都一致。同时在协调者和参与者中都引入超时机制,当参与者各种原因未收到协调者的commit请求后,会对本地事务进行commit,不会一直阻塞等待,解决了2PC的单点故障问题,但3PC还是没能从根本上解决数据一致性的问题。