课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
分布式架构系统是目前大多数软件开发程序员都在学习与应用的一个软件编程开发系统,下面我们就通过案例分析来简单了解一下,分布式系统的特征与一致性协议优缺点。
一、分布式系统特性
分布性
空间随机分布。这些计算机可以分布在不同的机房,不同的城市,甚至不同的国家。
对等性
分布式系统中的计算机没有主/从之分,组成分布式系统的所有节点都是对等的。
并发性
同一个分布式系统的多个节点,可能会并发地操作一些共享的资源,诸如数据库或分布式存储。
缺乏全局时钟
既然各个计算机之间是依赖于交换信息来进行相互通信,很难定义两件事件的先后顺序,缺乏全局始终控制序列。
故障总会发生
组成分布式的计算机,都有可能在某一时刻突然间崩掉。分的计算机越多,可能崩掉一个的几率就越大。如果再考虑到设计程序时的异常故障,也会加大故障的概率。
处理单点故障
单点SPoF(SinglePointofFailure):某个角色或者功能只有某一台计算机在支撑,在这台计算机上出现的故障是单点故障。
二、分布式一致性协议
2PC(2PrepareCommit)
优点:
原理简单
缺点:
同步阻塞
在二阶段提交的执行过程中,所有参与该事务操作的逻辑都处于阻塞状态,即当参与者占有公共资源时,其他节点访问公共资源会处于阻塞状态。
单点问题
若协调器出现问题,那么整个二阶段提交流程将无法运转,若协调者是在阶段二中出现问题时,那么其他参与者将会一直处于锁定事务资源的状态中,而无法继续完成事务操作。
数据不一致
在阶段二中,执行事务提交的时候,当协调者向所有的参与者发送Commit请求之后,发生了局部网络异常或者是协调者在尚未发送完Commit请求之前自身发生了崩溃,导致终只有部分参与者收到了Commit请求,于是会出现数据不一致的现象。
太过保守
在进行事务提交询问的过程中,参与者出现故障而导致协调者始终无法获取到所有参与者的响应信息的话,此时协调者只能依靠自身的超时机制来判断是否需要中断事务,这样的策略过于保守,即没有完善的容错机制,任意一个结点的失败都会导致整个事务的失败。
【免责声明】:本内容转载于网络,转载目的在于传递信息。文章内容为作者个人意见,本平台对文中陈述、观点保持中立,不对所包含内容的准确性、可靠性与完整性提供形式地保证。请读者仅作参考。更多内容请加danei0707学习了解。欢迎关注“达内在线”参与分销,赚更多好礼。