分布式理论基础

Table of contents

  1. 1. 分布式理论基础
    1. 1.1. 什么是分布式系统
      1. 1.1.1. 集中式系统
        1. 1.1.1.1. 特点
      2. 1.1.2. 分布式系统
        1. 1.1.2.1. 特点
    2. 1.2. 单机和集群以及分布式的关系
      1. 1.2.1. 单机
      2. 1.2.2. 集群
      3. 1.2.3. 分布式

分布式理论基础

什么是分布式系统

分布式系统是集中式系统的对应面,在明确分布式系统定义之前,让我们看看什么是集中式系统

集中式系统

集中式系统通常是由一台性能超强的计算机支撑的,系统所有的数据集和所有的业务单元都集中部署在这个中心节点上,所有的业务逻辑都是在中心节点上处理的

image-20240910191137362

特点

集中式系统最大的特点就是结构简单,因为系统所有的部分都是在这一个节点上实现的,不需要考虑多个节点之间的协作问题。

也正是因为系统单机部署,导致整个系统庞大且复杂,很难进行扩展(牵一发而动全身),并且还存在单点故障、性能差等问题。

分布式系统

分布式系统就是为解决集中式系统的瓶颈而生的。分布式系统核心思想就是“分治”,将大问题拆分成一个一个小问题,将系统拆分成一个一个小服务单元,分而治之。每一个服务单元分散到不同的网络节点上,彼此之间协调服务,共同完成系统的整体功能。

image-20240910192903084

特点

  • 分散性:分布式系统中的节点都是独立运行的,并且可以在空间任意分布,而且可以随时变动。这种分散性可以有效的提高分布式系统的可用性和伸缩性,并且具备很强的容错能力
  • 并发性:分布式系统中有多个进程并发运行,从而实现更高的性能
  • 异构性:分布式系统中的节点可能具有不同的硬件和软件资源
  • 容错性:分布式系统可以通过备份、复制以及一些容错算法来避免单点故障,提高系统的可靠性
  • 可扩展性:分布式系统可以灵活的增加和删减系统资源来适应不同的业务场景
  • 透明性:分布式系统对外是无感知的,对用户而言系统就是一个整体

单机和集群以及分布式的关系

单机

单机架构比较简单,就是系统的所有服务都运行在同一台机器上

image-20240917142802979

集群

单机架构所有的服务都运行在一台机器上,机器的硬件资源往往是性能的瓶颈。一个很直接的想法就是一台机器不行,那就引入多台机器,这就是集群架构的做法。

所以集群架构可以简单理解为是多个单机架构组成的,集群中每一台机器都是一个节点,每个节点都提供着相同的服务

image-20240917143354503

分布式

集群虽然能够有效解决单机架构的性能瓶颈,但是每个节点上依旧运行着所有的服务,耦合度太高,维护起来比较麻烦。不如从业务功能角度出发,将每个业务功能拆分成一个完全独立的子系统,这些子系统之间通过消息传递进行通信和协调工作,共同提供一个完整的系统功能。

image-20240917144228241

上图所示就是一个分布式系统,并且是一个分布式集群,将电商业务拆成了多个服务部署到了不同的服务器上,并且订单服务,物流服务,还有商品服务都是集群化部署,部署了多份。当然这个例子只是为了说明分布式和集群的关系,现在真正的业务场景一般不会这样部署了,不会一台服务器部署一个应用服务,都是容器化多实例部署

单机、集群、分布式、微服务

分布式优点

CAP理论

数据一致性(C)

可用性(A)

分区容错性(P)

要么CP要么AP