常用概念-分布式系统

分布式系统是建立在网络之上的软件系统,应对用户请求量大或数据量大的场景。通过水平扩展(复制系统部署)和垂直扩展(提升服务器性能)来应对需求。水平切分将系统复制到多台服务器,垂直切分按业务拆分成独立服务,混合切分结合两者。微服务是将大功能拆分成小服务的架构思想,分布式则强调这些服务在不同服务器上的部署。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

常用概念系列目录

  1. 常用概念-水平扩展和垂直扩展
  2. 常用概念-集群
  3. 常用概念-分布式系统

正文

分布式系统是建立在网络之上的软件系统,此定义包含了两个关键点

  • 软件系统
    此处的软件是一个通用概念,可以是业务软件、也可以是数据库软件、也可以是中间件软件;
    系统指这些软件作为一个整体统一对外提供服务;
  • 网络之上
    网络通信是分布式系统的显著特点,也是导致分布式系统产生数据不一致、服务不可用等问题的根源;

本文以具备多个功能模块的业务软件为例,介绍分布式系统的相关知识。数据库软件、中间件软件可以认为是具备一个功能模块的业务软件。

一般情况下,软件系统包含多个功能模块,这些功能模块相互协调合作,向用户提供各类服务。

在单体系统中,这些功能模块在一个工程中,模块之间的调用都在本地完成,不经过网络,最终单体系统经过编译打包后,部署在一台服务器上。

分布式系统同样也是一个软件系统,它同样包含了多个功能模块。不同的是,这些功能模块被部署在不同的服务器节点上(分布式,即分布在不同的服务器节点上),这些模块之间的交互需要通过网络完成。

为何要使用分布式系统?

  • S: 用户请求量大或数据量大,单体系统无法有效响应请求或处理数据。

  • T: 单体系统问题实质是物理层面单台服务器的性能不够问题,其根本解决办法是提高服务器性能。

    • 当进行垂直扩展时(即提升服务器性能),系统部署包仍部署在一个服务器上,系统各个功能模块之间的调用不走网络,此时不是分布式系统。
    • 当进行水平扩展时(即增加服务器数量),就需要对单体系统进行切分,并将切分后功能模块运行在多个服务器,此时系统各个功能模块之间调用需要通过网络,此时是分布式系统;
  • A:对单体系统的切分是功能模块层面,这些功能模块可以认为是一项任务,这些任务分布在不同的服务器上。常见三种切分方式

    • 水平切分
      复制单体系统的部署包,将其部署在不同的服务器上,即同一个系统部署到多台机器上。
      对应水平扩展;
    • 垂直切分
      按照业务维度,将单体系统拆分为多个功能模块,这些功能模块分别形成不同的部署包,部署在不同的服务器上;
      对应垂直扩展;
    • 混合切分
      将水平切分和垂直切分结合起来;
  • S: 以具备A、B、C三个模块的单体系统为例,单体系统的部署情况为 服务器1(A、B、C)

    • 水平切分
      服务器1(A、B、C) <----> 服务器2(A、B、C)<----> 服务器3(A、B、C)
      箭头表示存在交互关系

    • 垂直切分
      服务器1(只有A) <----> 服务器2(只有B)<----> 服务器3(只有C)
      箭头表示存在交互关系

    • 混合切分
      服务器1(只有A) <----> 服务器2(只有B1) <----> 服务器3(只有B2)<----> 服务器4(只有C)

      A B C垂直切分,B1、B2水平切分
      箭头表示存在交互关系

分布式系统实质是分布式部署系统,其特点是功能模块部署在不同的服务器上,通过网络交互。

微服务是一种软件架构设计思想,强调在业务层面将大的功能拆分为小的服务模块,是上文的切分过程。而分布式是在系统切分完成之后,强调系统部署包分布在不同的服务器上面。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值