【Java高级工程师蜕变之路】050 分布式架构理论

本文分析了分布式架构应用广泛的理论。

分布式架构理论

2022/04/6 校对完成

文章更新历史

2022/04/02 初稿。

分布式架构介绍

什么是分布式系统

分布式系统是一个硬件或者软件分布在不同的网络计算机上,彼此之间仅仅通过消息传递通信和协调的系统。

通俗的理解,分布式系统是,一个业务分拆成多个子业务,分布在不同的服务器节点,共同构成的服务器系统成为分布式系统。

同一个分布式系统中的服务器节点在空间部署上是可以随意分布的,服务器可能放在不同分机柜中,也可能放在不同不同的机房中,深圳分布在不同的城市。

image-20220314224421105

分布式与集群的区别

集群:多个服务器做同一件事情

image-20220314224722066

分布式:多个服务器做不同的事情

image-20220314225045381

分布式系统的特性

1、分布性

空间中可以随机分布。这些计算机可以分布在不同机房,不同城市,甚至是不同国家。

2、对等性

分布式系统中的计算机没有主/从之分,组成分布式的所有节点都是对等的。

3、并发性

同一个分布式系统中的多个节点,可能会并发的操作一些共享的资源,例如数据库或者分布式存储。

4、缺乏全局时钟

由于各个计算机依赖交换信息进行通信,很难定义两件事件的先后顺序,缺乏全局时钟控制序列。

5、故障总会发生

组成分布式系统分计算机,都有可能在某一时间崩掉。分的计算机越多,崩的几率越大。如果考虑设计程序时的故障,则故障的概率会大大的增加。

6、处理单点故障

单点SPoF(Single Point of Failure):某个角色或者功能只有某一台计算机在支撑,在这台计算机出现的故障叫做单点故障。

分布式系统面临的问题

  1. 通信异常

    网络本身不可靠,因此每次通信都会面临网络不可用的风险(光纤、路由器、DNS等硬件系统的不可用),都会导致分布上系统无法顺利进行一次网络通信。即使分布式各个节点直接的网络能够进行通信,延迟也会大于单机操作,存在巨大的时延,这样会影响消息的收发,消息丢失和消息延迟变的很普遍。

image-20220314231834864

  1. 网络分区

    网络中出现了网络不连接,但是各个系统之间的子网链接正常,从而导致网络环境被切割成若干个孤立的区域,分布式系统会出现局部小集群。极端情况下,小集群会完成原本需要整个分布式系统才能完成的任务。包括事务的处理,这对分布式的一致性带来了很大的挑战。

image-20220314231952023

  1. 节点故障
    指的是分布式系统中节点出现宕机,每个节点又有可能出现故障或者僵死,并且经常发生。

image-20220314232419799

  1. 三态

    分布式系统中每一次请求都存在三态,即:成功、失败和超时。

image-20220314232625668

  1. 重发

    分布式系统在调用是可能会发生 失败超时 ,这时需要重新发起调用。

image-20220314232852790

  1. 幂等

    一次或者多次请求同一个资源本身应该有相同的结果(网络超时等问题除外)。即任意多次执行对资源本身产生的影响均与第一次执行的影响相同。

image-20220314233421353 image-20220314233522102 image-20220314233559509

posted @ 2022-05-04 22:27  灯塔下的守望者  阅读(74)  评论(0编辑  收藏  举报