分布式系统架构:初识分布式

认识集中式系统和分布式系统

集中式系统

  1. 所谓的集中式系统,指的是由一台或一台以上的计算机组成的中心节点(节点:服务器/电脑),系统数据集中在该中心节点中处理;

  2. 通俗点来说,就是一台或一台以上的服务器都使用同一套完整的系统代码来提供服务,即服务器部署的都是一个完整应用;

集中式系统 - 例子图:

集中式系统(集群) - 例子图:

分布式系统

分布式系统是一个硬件或软件组件(应用拆分)分布在不同网络计算机上,彼此之间只通过消息传递进行通信和协作的系统 -- 《分布式系统概念与设计》

由上定义可以得出结论,只要是服务器之间只通过消息传递通信和协作的系统,都属于分布式系统;

分布式系统 - 例图:

分布式系统(集群) - 例图:

集中式和分布式的优缺点

图片源自:CSDN - OnTheRoad_Kang

分布式系统的特点

分布性:

分布式系统中的多台计算机都会在空间上随意分布,同时,机器的分布情况也会随时变动;

对等性:

分布式系统中服务器与服务器之间没有主从之分;

但有“副本”,分为数据副本服务副本

数据副本:指的是分布式系统对数据和服务的一种冗余方式,主要用于提供高可用的服务,即当某个节点(服务器)上的数据有丢失就可以重副本节点中获取完整的数据;

服务器副本:实质就是处理请求的服务器,即所有服务器副本都具有处理请求的能力

并发性:

如同一个分布式系统中多个节点,可能同时并发操作一些共享资源,如数据库、分布式缓存等等;

如何准确并且有效地协调分布式并发操作,是分布式系统架构和设计中最大的挑战之一

缺乏全局时钟:

分布式系统工作时由多个进程组成,具有明显的分布性,这些进程之间通过交换消息来进行通信。因此很难定义某两个事件的先后顺序;

原因就是因为分布式系统缺乏一个全局的时钟序列控制;

分布式环境中的问题

通信异常

  1. 因为网络本身的不可靠性,因此分布式系统在通讯过程中就会伴随着网络的不可用风险:网络光纤、路由器、DNS服务器等等硬件设备或是系统不可用都会导致最终分布式系统无法顺利完成一次网络通信;
  2. 即使网络通信正常进行,但延迟也会远大于单机操作,因此消息丢失和消息延迟变得非常普遍;

网络分区

  1. 所谓的网络分区,就是有这么一种情况,由于网络延迟,导致分布式系统节点与节点之间的通信延时逐渐增大,最后导致部分节点有些能够正常通信有些不能正常通信,这就是网络分区现象,也被称为“脑裂”
  2. 出现网络分区之后,剩下那些部分能够相互通信的节点就要负起原来可能是整个分布式系统的操作责任来完成请求、事务等,这对分布式的一致性是一大挑战;

三态

  1. 由于网络通信可能会出现各种问题,因此,分布式系统的每一个请求和响应动作,都有三个状态:成功、失败、超时

  2. 主要原因是因为不像传统的单机系统,单机系统只需要在应用内部获取一个函数的返回结果即可得出一个并且的相应结果;但分布式系统由于网络的不可靠性,就算是能够接受到相应结果,却可能会出现超时的现象,通常有一下两种情况:

    • 由于网络原因,请求并没有被成功地发送到接收方,而是在发送的途中发生了丢失的现象
    • 请求成功,也被接收方接受处理,但在响应返回给发送方的时候发生了消息丢失现象

    当出现以上两种情况,网络通信的发起方是无法确定当前请求是否被成功处理的

节点故障

节点故障是分布式环境下比较常见的问题,指的是组成分布式系统的服务器节点出现了 宕机 或者 “僵死” 等现象;

猜你喜欢

转载自www.cnblogs.com/tandi19960505/p/10061929.html
今日推荐