了解分布式架构
Posted bbbbs
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了了解分布式架构相关的知识,希望对你有一定的参考价值。
一. 分布式架构
1. 特点
分布式系统是一个硬件或软件组件分布在不同的网络计算机上,彼此之间仅仅通过消息传递进行通信和协调的系统;
分布性:组成分布式系统的所有计算机节点都是对等的;
并发性:系统中的多个节点同时操作一些共享的资源;
缺乏全局时钟:很难定义两个事件究竟谁先谁后;
故障总是会发生:组成系统的所有计算机,都有可能发生任何形式的故障;
2. 问题
通信异常:系统中各个节点间的网络通信可能会伴随着网络不可用的风险;
网络分区:只有部分节点之间能正常通信,另一些节点不能,俗称“脑裂”;
三态:成功,失败,超时;
节点故障:组成系统的节点出现宕机或僵死现象;
3. ACID
原子性Atomicity:事务必须是一个原子的操作序列单元;事务的各项操作在一次执行过程中,状态只有全部成功执行和全部不执行;
一致性Consistency:事务的执行不能碰坏数据库数据的完整性和一致性;一个事务在执行前后数据库都必须处于一致性状态;
隔离性Isolation:并发的事务是相互隔离的,一个事务的执行不能被其他事务干扰;
持久性Durablity:一个事务一旦提交,对数据库中对应数据的状态变更就应该是永久性的;
4. CAP定理
一个分布式系统不可能同时满足一致性Consistency,可用性Availablity和分区容错性Partition tolerance;最多同时满足两项;
5. BASE理论
基本可用Basically Available,软状态Soft state,最终一致性Eventually consistent;
二. 一致性协议
1. 2PC
Two-Phase Commit,二阶段提交,事务处理过程中保持原子性和一致性;
阶段一:提交事务请求;投票阶段,即各参与者投票表面是否要继续执行接下去的commit操作;
阶段二:执行事务提交;执行阶段,根据一阶段的结果执行提交操作或回滚操作;
优点:原理简单,实现方便;
缺点:
同步阻塞,各个参与者等待响应过程中,无法进行其他任何操作;
单点问题,如果协调者出现问题,整个流程无法运转;
数据不一致,部分参与者收到了commit请求,部分没有收到;
保守,没有完善的容错机制,任一节点的失败都会导致整个事务的失败;
2. 3PC
Three-Phase Commit,三阶段提交,CanCommit,PreCommit,do Commit;
优点:降低了参与者的阻塞范围,并且能够在出现单点故障后继续达成一致;
缺点:在参与者接收到preCommit消息后,如果协调者和参与者后续无法正常通信,参与者依然会提交事务,导致数据不一致;
3. Paxos算法
略;
以上是关于了解分布式架构的主要内容,如果未能解决你的问题,请参考以下文章