一、分布式架构
1、分布式特点
- 分布性
- 对等性。分布式系统中的所有计算机节点都是对等的
- 并发性。多个节点并发的操作一些共享的资源
- 缺乏全局时钟。节点之间通过消息传递进行通信和协调,因为缺乏全局时钟,很难定义两个事件谁先谁后
- 故障总是会发生。系统设计时,需要考虑到任何异常情况
2、分布式环境的各种问题
- 通信异常。分布式系统中的某些节点之间无法正常通信
- 网络分区。这有部分节点可以正常通信,有些无法正常通信。这种现象称为网络分区,也称为“脑裂”
- 三态。节点之间的一次通信存在三种状态:成功、失败、超时
- 节点故障。节点机器宕机、失去回应
3、传统事务的ACID理论。
- 原子性(Atomicity)。事务内的所有操作要么全部成功,要么全部失败
- 一致性(Consistency)。事务的执行不能破坏数据库的一致性。如果事务执行一半停了,一部分的修改写入的数据库。这时候,数据库就处于一种不正确的状态,或者说不一致的状态
- 隔离性(Isolation)。多个事务并发执行,彼此不会受影响。事务的隔离级别:读未提交(可能发生脏读、重复读、幻象读)、读已提交(肯能发生重复读、幻象读)、可重复读(可能发生幻象读)、串行化。隔离级别越高,对并发的性能影响越大,越能保证数据库的一致性。
- 持久性(Durablility)。一旦事务成功提交,它对于数据的修改就被永久保存下来
4、分布式事务的CAP理论和BASE理论
- CAP理论。一致性(Consistency)、可用性(Availability)、分区容错性(Partition tolerance),在分布式系统中,最多只能满足其中的两项。
- BASE理论。基本可用(Basically Available)、软状态(Soft state)、最终一致性(Eventually consistent)。基本可用指系统出现故障时,允许损失部分可用性,包括响应时间的损失和功能上的系统降级;软状态指允许节点间的通讯出现中间状态;最终一致指系统的所有的数据副本,在一定时间的同步后,最终能够达到一致的状态
二、一致性协议
1、2PC。二阶段提交协议
2、3PC。三阶段提交协议
3、Paxos算法
《从Paxos到ZooKeeper 分布式一致性原理与实践》读书笔记
原文:https://www.cnblogs.com/wangzhongqiu/p/8981828.html