分布式系统架构(一)——三大理论

一、从集中式到分布式

集中式概念:

     一台或多台计算机组成中心节点,所有的数据、服务均中存储部署于这个中心节点。每个终端机只负责数据录入和输出,而数据的存储和控制均由主机完成。

集中式的优点:

     1、中心节点强大的计算和IO处理能力

集中式的问题:

     1、主机昂贵

     2、单点故障

     3、扩容困难

分布式概念:

     分布式系统是一个硬件或软件服务分布在不同的网络计算机上,彼此通过消息传递进行通信和协调

分布式的特点:

     1、随意分布:分布式系统的多台计算机会在空间上随意分布,且可随时变动

     2、无主从之分:Replica是分布式系统最常见概念之一,指分布式系统对数据、服务的冗余方式,为对外提供高可用服务,往往会对数据服务进行副本处理。(数据冗余:在不同节点上持久化同一份数据;服务冗余:多个节点提供同一种服务)。 

分布式的问题:

     1、并发性:分布式的多个节点并发操作共享资源时(如数据库存储),如何准确高效的协调并发操作

     2、缺乏全局时钟:分布式系统通过消息进行通信协调,很难定义两个事件谁先谁后的顺序性。

     3、通讯异常:由于网络传输等因素,分布式系统节点间通信会出现异常、消息延迟、丢失的问题

     4、脑裂:当网络异常时,分布式系统中部分节点之间网络延时不断增大,最终导致部分节点瘫痪,只有一部分可正常通信

     5、一致性问题 :后续详解

分布式环境下三态:

     成功、失败、超时

     发送方发了----接收方未收到----->消息丢失

     发送方发了----接收方收到了----->返回response失败----->response消息丢失 

二、三大理论模型

事务四大特征ACID:

     1、原子性:每个事务都属于最小操作单元,要么全部成功,要么全部失败。

     2、一致性:数据库总是从一个一致性的状态转换到另一个一致性的状态。例如,即使取钱操作失败,因为事务没有提交,所以事务 ,所做的修改也不会保存到数据库中,数据还是事务执行前的状态。如果事务执行成功,那数据就是执行后的状态,保持不变。

     3、持久性:事务一旦提交,对数据库的更改操作就是持久的。

     4、隔离性:多个事务并发执行,彼此独立互不干扰。

          未提交读(脏读):A B 同时操作一份数据,A读到B尚未提交的记录。例如B将数据从库里的1累加到10,B事务完成数据库  最终值为10,未提交读隔离级别使得A能读到B从1-10累加过程中的中间数据。

          提交度(不可重复读):A 只能读到B提交后的数据。也就是说A只能读到原纪录1或B累加操作事务提交后的10,不会读到B操作的中间数据。

          可重复读(幻读):

          串行化:事务严格按照一定顺序串行。 

     对于本地事务和集中式事务采用ACID模型保证数据的一致性。但在分布式系统中,分布式事务由多个一系列操作完成,且参与节点有可能出现在不同节点上。如异地存款、取款服务。难以保证ACID。于是衍生出来CAP和BASE理论模型。 

CAP:

     一个分布式系统不可能同时满足一致性、可用性和分区容错性。三者择其二。

     1、一致性:当数据副本分布在不同系统中,对数据节点A进行更新操作,保证其他所有副本节点都同时更新为最新值。

          强一致性:近乎实时同步

         弱一致性:允许一定时间范围内的同步延迟。典型应用:最终一致性处理

     2、可用性:

          系统服务必须一直处于可用状态。衡量:用户每个请求都必须在有限时间内返回结果。

     3、分区容错性(可扩展):

          因为分布式系统各个节点分布在不同网络区间中,分区容错性要求分布式系统在遇到网络分区故障时,仍需要保证对外提供一致性、可用性服务。

      放弃分区容错性意味着放弃节点可在不同网络区间部署的特性-即放弃可扩展性,既然是分布式系统必然要求节点被部署到不同分区服务器中(不可取)。所以一般是在CA间做权衡。 

BASE:

     1、基本可用:

          在系统发生不可预知故障时,允许一部分可用性损失。(响应时间或功能上进行服务降级)

     2、软状态:

          允许系统中数据存在中间状态。即允许不同加点的数据副本间存在同步延时的情况

     3、最终一致性:

          系统数据无需实时同步,保证最终数据能达到一致即可。

     牺牲一致性来保证可用性,允许数据在一段时间内是不一致的,但最终达到一致即可。

 

你可能感兴趣的:(分布式系统架构(一)——三大理论)