85-彻底解决分布式事务-Cap与Base理论

文章目录

        • 1. 理解Base与CAP理论、最终一致性概念
        • 2. 2PC两阶段提交协议
        • 3. 2PC和3PC提交的区别
        • 4. 跨语言怎么解决分布式事务

1. 理解Base与CAP理论、最终一致性概念

C:Consistency,一致性。在分布式系统中所有数据备份,在同一时刻具有同样的值,所有节点在同一时刻读取的数据都是最新的数据副本
A:Availability,可用性。完全的可用性指的是在任何故障下,服务都会在有限的时间内处理完成并进行响应
P:分区容错。尽管网络上有部分消息丢失,但系统仍然可以继续工作
CAP原理指的是,三个要素最多只能同时实现两点不可能三者兼顾。因此在进行分布式架构设计时,必须做出取舍。而对于分布式数据系统,分区容忍性是基本要求,否则就失去了价值。因此设计分布式数据系统,就是在一致性和可用性之间取一个平衡。对于大多数web应用,其实并不需要强一致性,因此牺牲一致性而换取高可用性,是目前多数分布式数据库产品的方向。

当然,牺牲一致性,并不是完全不管数据的一致性,否则数据是混乱的,那么系统可用性再高分布式再好也没有了价值。牺牲一致性,只是不再要求关系型数据库中的强一致性,而是只要系统能达到最终一致性即可,考虑到客户体验,这个最终一致的时间窗口,要尽可能的对用户透明,也就是需要保障“用户感知到的一致性”。通常是通过数据的多份异步复制来实现系统的高可用和数据的最终一致性的,“用户感知到的一致性”的时间窗口则取决于数据复制到一致状态的时间。

BASE理论是指,Basically Available(基本可用)、Soft-state( 软状态/柔性事务)、Eventual Consistency(最终一致性)。是基于CAP定理演化而来,是对CAP中一致性和可用性权衡的结果。核心思想:即使无法做到强一致性,但每个业务根据自身的特点,采用适当的方式来使系统达到最终一致性。
1、基本可用:指分布式系统在出现故障的时候,允许损失部分可用性,保证核心可用。但不等价于不可用。比如:搜索引擎0.5秒返回查询结果,但由于故障,2秒响应查询结果;网页访问过大时,部分用户提供降级服务,等。
2、软状态:软状态是指允许系统存在中间状态,并且该中间状态不会影响系统整体可用性。即允许系统在不同节点间副本同步的时候存在延时。
3、最终一致性:
系统中的所有数据副本经过一定时间后,最终能够达到一致的状态,不需要实时保证系统数据的强一致性。最终一致性是弱一致性的一种特殊情况。BASE理论面向的是大型高可用可扩展的分布式系统,通过牺牲强一致性来获得可用性。ACID是传统数据库常用的概念设计,追求强一致性模型。

2. 2PC两阶段提交协议

85-彻底解决分布式事务-Cap与Base理论_第1张图片
第一阶段:协调者向参与者发起指令,参与者评估自己的状态,如果参与者评估指令可以完成,则会写redo或者undo日志,然后锁定资源,执行操作,但不提交
第二阶段:如果每个参与者明确返回准备成功,则协调者向参与者发送提交指令,参与者释放锁定的资源,如果任何一个参与者明确返回准备失败,则协调者会发送终止指令,参与者取消已经变更的事务,释放锁定的资源

3. 2PC和3PC提交的区别

增加了一个询问阶段,询问阶段可以确保尽可能早的返现无法执行操作而需要终止的行为,但是它并不能发现所有的这种行为,知会减少这种情况的发生在准备阶段以后,协调者和参与者执行的任务中都都增加了超时,一旦超时,协调者和参与者都继续提交事务,默认为成功,这也是根据概率统计上超时后默认成功的正确性最大
三阶段提交协议与两阶段提交协议相比,具有如上的优点,但是一旦发生超时,系统仍然会发生不一致,只不过这种情况很少见罢了,好处就是至少不会阻塞和永远锁定资源。

4. 跨语言怎么解决分布式事务

采用支付宝回调方式进行补偿
85-彻底解决分布式事务-Cap与Base理论_第2张图片

你可能感兴趣的:(笔记)