★★★建议星标我们★★★
年Java原创面试题库连载中
Java最全面试题库思维导图
JavaSE系列面试题汇总(共18篇)
JavaWeb系列面试题汇总(共10篇)
JavaEE系列面试题汇总(共13篇)
数据库系列面试题汇总(共6篇)
中间件系列面试题汇总(共3篇)
数据结构与算法面试题汇总(共11篇)
分布式面试题汇总(共10篇)
综合面试题系列(一)
综合面试题系列(二)
综合面试题系列(三)
综合面试题系列(四)
综合面试题系列(五)
综合面试题系列(六)
综合面试题系列(七)
综合面试题系列(八)
综合面试题系列(九)
综合面试题系列(十)
综合面试题系列(十一)
综合面试题系列(十二)
综合面试题系列(十三)
更多内容,点击上面蓝字查看
来源:r6d.cn/VMW9
背景
在常见的分布式系统中,总会发生诸如机器宕机或网络异常(包括消息的延迟、丢失、重复、乱序,还有网络分区)等情况。
一致性算法需要解决的问题就是如何在一个可能发生上述异常的分布式系统中,快速且正确地在集群内部对某个数据的值达成一致,并且保证不论发生以上任何异常,都不会破坏整个系统的一致性。
CAP定理
CAP理论告诉我们,一个分布式系统不可能同时满足一致性(C:Consistency),可用性(A:Availability)和分区容错性(P:Partitiontolerance)这三个基本需求,最多只能同时满足其中的2个。
Base理论
BASE:全称:BasicallyAvailable(基本可用),Softstate(软状态),和Eventuallyconsistent(最终一致性)。
Base理论是对CAP中一致性和可用性权衡的结果,其来源于对大型互联网分布式实践的总结,是基于CAP定理逐步演化而来的。其核心思想是:既是无法做到强一致性(Strongconsistency),但每个应用都可以根据自身的业务特点,采用适当的方式来使系统达到最终一致性(Eventualconsistency)。
解释一下:什么是软状态呢?相对于原子性而言,要求多个节点的数据副本都是一致的,这是一种“硬状态”。软状态指的是:允许系统中的数据存在中间状态,并认为该状态不影响系统的整体可用性,即允许系统在多个不同节点的数据副本存在数据延时。
2PC
Two-PhaseCommit,事务的提交过程分成了两个阶段来进行处理。
2PC阶段一
1.事务询问
协调者向所有的参与者询问,是否准备好了执行事务,并开始等待各参与者的响应。
1.执行事务
各参与者节点执行事务操作,并将Undo和Redo信息记入事务日志中
1.各参与者向协调者反馈事务询问的响应
如果参与者成功执行了事务操作,那么就反馈给协调者Yes响应,表示事务可以执行;如果参与者没有成功执行事务,就返回No给协调者,表示事务不可以执行。
2PC阶段二
在阶段二中,会根据阶段一的投票结果执行2种操作:执行事务提交,中断事务。
执行事务提交步骤如下:
发送提交请求:协调者向所有参与者发出