分布式理论基础

分布式理论基础

什么是分布式系统

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

集中式系统

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

image-20240910191137362

特点

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

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

分布式系统

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

image-20240910192903084

特点

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

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

单机

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

image-20240917142802979

集群

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

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

image-20240917143354503

分布式

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

image-20240917144228241

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

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

分布式优点

CAP理论

数据一致性(C)

可用性(A)

分区容错性(P)

要么CP要么AP