分布式基础知识
分布式的特点:分布性、对等性、并发性、缺乏全局时钟、故障总会发生
分布式环境下的各种问题:通讯异常、网络分区、成功失败超时三态、节点故障
事务一致性
数据库事务包含:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability)
分布式事务:
事务的参与者、支持事务的服务器、资源服务器以及事务管理器位于分布式系统的不同节点上。
CAP定理:
一个分布式系统不可能同时满足一致性(C:Consistency)、可用性(A:Availability)和分区容错性(P:Partition tolerance)这三个基本要求,最多只能满足其中的两项。
BASE理论:
Basically Available(基本可用)、Soft state(软状态)和Eventually consistent(最终一致性)三个短语的简写。BASE是对CAP中一致性和可用性权衡的结果,其来源于对大规模互联网系统分布式实践的总结,是基于CAP定理逐步演化而来的,其核心思想是即使无法做到强一致性,但每个应用都可以根据自身的业务特点,采用适当的方法来使系统达到最终一致性。
一致性协议:
2pc(请求处理-->提交确认)与3pc(事务处理能力询问-->处理后待提交-->提交确认)
两阶段提交(2pc)
两个阶段是指:第一阶段:准备阶段(投票阶段)和第二阶段:提交阶段(执行阶段)。
image.png
准备阶段分为以下三个步骤:
1)协调者节点向所有参与者节点询问是否可以执行提交操作(vote),并开始等待各参与者节点的响应。
2)参与者节点执行询问发起为止的所有事务操作,并将Undo信息和Redo信息写入日志。(注意:若成功这里其实每个参与者已经执行了事务操作)
3)各参与者节点响应协调者节点发起的询问。如果参与者节点的事务操作实际执行成功,则它返回一个”同意”消息;如果参与者节点的事务操作实际执行失败,则它返回一个”中止”消息。
提交阶段
如果协调者收到了参与者的失败消息或者超时,直接给每个参与者发送回滚(Rollback)消息;否则,发送提交(Commit)消息;参与者根据协调者的指令执行提交或者回