事务就是指一个操作单元,操作单元中的所有操作要么同时成功要么同时失败。单体项目中的事务一般都是使用数据库提供的事务机制来完成的,但是分布式事务的事务参与者位于不同的节点上,也就是分布在不同的服务器上。分布式事务的最大问题就是各子事务的一致性问题,有两种解决思路,AP模式与CP模式,介绍这两种模式首先要介绍CAP定理与BASE理论。
分布式系统有三个指标:Consistency(一致性)(所有节点所有数据一致性)、Availability(可用性)(强调总能返回响应数据,但数据不一定都是最新数据)、Partition tolerance (分区容错性)(网络问题导致分区,仍能提供服务)。CAP定理指的就是这三个要素最多只能同时实现两点,不可能三者同时满足。
对于分布式系统来说,P(网络问题)必须要保证,A和C最多只能满足一个。如果要保证强一致性C,就必须等待网络回复,完成数据同步后,整个集群才对外提供服务,此时服务处于阻塞状态,不可用。如果要保证可用性A,就要马上返回结果,此时各个节点都未完成数据同步,返回的数据不一致。
BASE理论就是对CAP中一致性和可用性进行权衡的结果,核心思想就是保证系统基本可用和最终一致性。Basically Available (基本可用)(允许损失部分可用性,保证核心可用即可)、Soft State(软状态)(允许出现中间状态,比如临时的不一致状态 )、Eventually Consistent(最终一致性)(软状态结束后,最终数据一致)。
解决方案
1.两阶段提交(CP模式)