【分布式系统】 单机架构 | 分布式架构 | 集群 | 主从架构 | 分库分表 | 冷热分离 | 微服务

### 文章目录

  • [@[toc]](#文章目录 @[toc] 分布式系统 一、单机架构 二、分布式系统 三、应用服务器集群 四、读写分离 / 主从分离架构 五、引入缓存/冷热分离架构 六、垂直分库 七、微服务架构——业务拆分 代价 优势 八、名词解释 1.应用(Application)/系统(System) 2.模块(Model)/组件(Component) 3.分布式(Distributed) 4.集群(Cluster) 5.主(Master)/从(Slave) 6.中间件(Middleware) 评价指标 7.可用性(Availability) 8.响应时间(RT) 9.吞吐率(Throughout)、并发量(Concurrent))
  • [分布式系统](#文章目录 @[toc] 分布式系统 一、单机架构 二、分布式系统 三、应用服务器集群 四、读写分离 / 主从分离架构 五、引入缓存/冷热分离架构 六、垂直分库 七、微服务架构——业务拆分 代价 优势 八、名词解释 1.应用(Application)/系统(System) 2.模块(Model)/组件(Component) 3.分布式(Distributed) 4.集群(Cluster) 5.主(Master)/从(Slave) 6.中间件(Middleware) 评价指标 7.可用性(Availability) 8.响应时间(RT) 9.吞吐率(Throughout)、并发量(Concurrent))
  • [一、单机架构](#文章目录 @[toc] 分布式系统 一、单机架构 二、分布式系统 三、应用服务器集群 四、读写分离 / 主从分离架构 五、引入缓存/冷热分离架构 六、垂直分库 七、微服务架构——业务拆分 代价 优势 八、名词解释 1.应用(Application)/系统(System) 2.模块(Model)/组件(Component) 3.分布式(Distributed) 4.集群(Cluster) 5.主(Master)/从(Slave) 6.中间件(Middleware) 评价指标 7.可用性(Availability) 8.响应时间(RT) 9.吞吐率(Throughout)、并发量(Concurrent))
  • [二、分布式系统](#文章目录 @[toc] 分布式系统 一、单机架构 二、分布式系统 三、应用服务器集群 四、读写分离 / 主从分离架构 五、引入缓存/冷热分离架构 六、垂直分库 七、微服务架构——业务拆分 代价 优势 八、名词解释 1.应用(Application)/系统(System) 2.模块(Model)/组件(Component) 3.分布式(Distributed) 4.集群(Cluster) 5.主(Master)/从(Slave) 6.中间件(Middleware) 评价指标 7.可用性(Availability) 8.响应时间(RT) 9.吞吐率(Throughout)、并发量(Concurrent))
  • [三、应用服务器集群](#文章目录 @[toc] 分布式系统 一、单机架构 二、分布式系统 三、应用服务器集群 四、读写分离 / 主从分离架构 五、引入缓存/冷热分离架构 六、垂直分库 七、微服务架构——业务拆分 代价 优势 八、名词解释 1.应用(Application)/系统(System) 2.模块(Model)/组件(Component) 3.分布式(Distributed) 4.集群(Cluster) 5.主(Master)/从(Slave) 6.中间件(Middleware) 评价指标 7.可用性(Availability) 8.响应时间(RT) 9.吞吐率(Throughout)、并发量(Concurrent))
  • [四、读写分离 / 主从分离架构](#文章目录 @[toc] 分布式系统 一、单机架构 二、分布式系统 三、应用服务器集群 四、读写分离 / 主从分离架构 五、引入缓存/冷热分离架构 六、垂直分库 七、微服务架构——业务拆分 代价 优势 八、名词解释 1.应用(Application)/系统(System) 2.模块(Model)/组件(Component) 3.分布式(Distributed) 4.集群(Cluster) 5.主(Master)/从(Slave) 6.中间件(Middleware) 评价指标 7.可用性(Availability) 8.响应时间(RT) 9.吞吐率(Throughout)、并发量(Concurrent))
  • [五、引入缓存/冷热分离架构](#文章目录 @[toc] 分布式系统 一、单机架构 二、分布式系统 三、应用服务器集群 四、读写分离 / 主从分离架构 五、引入缓存/冷热分离架构 六、垂直分库 七、微服务架构——业务拆分 代价 优势 八、名词解释 1.应用(Application)/系统(System) 2.模块(Model)/组件(Component) 3.分布式(Distributed) 4.集群(Cluster) 5.主(Master)/从(Slave) 6.中间件(Middleware) 评价指标 7.可用性(Availability) 8.响应时间(RT) 9.吞吐率(Throughout)、并发量(Concurrent))
  • [六、垂直分库](#文章目录 @[toc] 分布式系统 一、单机架构 二、分布式系统 三、应用服务器集群 四、读写分离 / 主从分离架构 五、引入缓存/冷热分离架构 六、垂直分库 七、微服务架构——业务拆分 代价 优势 八、名词解释 1.应用(Application)/系统(System) 2.模块(Model)/组件(Component) 3.分布式(Distributed) 4.集群(Cluster) 5.主(Master)/从(Slave) 6.中间件(Middleware) 评价指标 7.可用性(Availability) 8.响应时间(RT) 9.吞吐率(Throughout)、并发量(Concurrent))
  • [七、微服务架构------业务拆分](#文章目录 @[toc] 分布式系统 一、单机架构 二、分布式系统 三、应用服务器集群 四、读写分离 / 主从分离架构 五、引入缓存/冷热分离架构 六、垂直分库 七、微服务架构——业务拆分 代价 优势 八、名词解释 1.应用(Application)/系统(System) 2.模块(Model)/组件(Component) 3.分布式(Distributed) 4.集群(Cluster) 5.主(Master)/从(Slave) 6.中间件(Middleware) 评价指标 7.可用性(Availability) 8.响应时间(RT) 9.吞吐率(Throughout)、并发量(Concurrent))
  • [代价](#文章目录 @[toc] 分布式系统 一、单机架构 二、分布式系统 三、应用服务器集群 四、读写分离 / 主从分离架构 五、引入缓存/冷热分离架构 六、垂直分库 七、微服务架构——业务拆分 代价 优势 八、名词解释 1.应用(Application)/系统(System) 2.模块(Model)/组件(Component) 3.分布式(Distributed) 4.集群(Cluster) 5.主(Master)/从(Slave) 6.中间件(Middleware) 评价指标 7.可用性(Availability) 8.响应时间(RT) 9.吞吐率(Throughout)、并发量(Concurrent))
  • [优势](#文章目录 @[toc] 分布式系统 一、单机架构 二、分布式系统 三、应用服务器集群 四、读写分离 / 主从分离架构 五、引入缓存/冷热分离架构 六、垂直分库 七、微服务架构——业务拆分 代价 优势 八、名词解释 1.应用(Application)/系统(System) 2.模块(Model)/组件(Component) 3.分布式(Distributed) 4.集群(Cluster) 5.主(Master)/从(Slave) 6.中间件(Middleware) 评价指标 7.可用性(Availability) 8.响应时间(RT) 9.吞吐率(Throughout)、并发量(Concurrent))
  • [八、名词解释](#文章目录 @[toc] 分布式系统 一、单机架构 二、分布式系统 三、应用服务器集群 四、读写分离 / 主从分离架构 五、引入缓存/冷热分离架构 六、垂直分库 七、微服务架构——业务拆分 代价 优势 八、名词解释 1.应用(Application)/系统(System) 2.模块(Model)/组件(Component) 3.分布式(Distributed) 4.集群(Cluster) 5.主(Master)/从(Slave) 6.中间件(Middleware) 评价指标 7.可用性(Availability) 8.响应时间(RT) 9.吞吐率(Throughout)、并发量(Concurrent))
  • [1.应用(Application)/系统(System)](#文章目录 @[toc] 分布式系统 一、单机架构 二、分布式系统 三、应用服务器集群 四、读写分离 / 主从分离架构 五、引入缓存/冷热分离架构 六、垂直分库 七、微服务架构——业务拆分 代价 优势 八、名词解释 1.应用(Application)/系统(System) 2.模块(Model)/组件(Component) 3.分布式(Distributed) 4.集群(Cluster) 5.主(Master)/从(Slave) 6.中间件(Middleware) 评价指标 7.可用性(Availability) 8.响应时间(RT) 9.吞吐率(Throughout)、并发量(Concurrent))
  • [2.模块(Model)/组件(Component)](#文章目录 @[toc] 分布式系统 一、单机架构 二、分布式系统 三、应用服务器集群 四、读写分离 / 主从分离架构 五、引入缓存/冷热分离架构 六、垂直分库 七、微服务架构——业务拆分 代价 优势 八、名词解释 1.应用(Application)/系统(System) 2.模块(Model)/组件(Component) 3.分布式(Distributed) 4.集群(Cluster) 5.主(Master)/从(Slave) 6.中间件(Middleware) 评价指标 7.可用性(Availability) 8.响应时间(RT) 9.吞吐率(Throughout)、并发量(Concurrent))
  • [3.分布式(Distributed)](#文章目录 @[toc] 分布式系统 一、单机架构 二、分布式系统 三、应用服务器集群 四、读写分离 / 主从分离架构 五、引入缓存/冷热分离架构 六、垂直分库 七、微服务架构——业务拆分 代价 优势 八、名词解释 1.应用(Application)/系统(System) 2.模块(Model)/组件(Component) 3.分布式(Distributed) 4.集群(Cluster) 5.主(Master)/从(Slave) 6.中间件(Middleware) 评价指标 7.可用性(Availability) 8.响应时间(RT) 9.吞吐率(Throughout)、并发量(Concurrent))
  • [4.集群(Cluster)](#文章目录 @[toc] 分布式系统 一、单机架构 二、分布式系统 三、应用服务器集群 四、读写分离 / 主从分离架构 五、引入缓存/冷热分离架构 六、垂直分库 七、微服务架构——业务拆分 代价 优势 八、名词解释 1.应用(Application)/系统(System) 2.模块(Model)/组件(Component) 3.分布式(Distributed) 4.集群(Cluster) 5.主(Master)/从(Slave) 6.中间件(Middleware) 评价指标 7.可用性(Availability) 8.响应时间(RT) 9.吞吐率(Throughout)、并发量(Concurrent))
  • [5.主(Master)/从(Slave)](#文章目录 @[toc] 分布式系统 一、单机架构 二、分布式系统 三、应用服务器集群 四、读写分离 / 主从分离架构 五、引入缓存/冷热分离架构 六、垂直分库 七、微服务架构——业务拆分 代价 优势 八、名词解释 1.应用(Application)/系统(System) 2.模块(Model)/组件(Component) 3.分布式(Distributed) 4.集群(Cluster) 5.主(Master)/从(Slave) 6.中间件(Middleware) 评价指标 7.可用性(Availability) 8.响应时间(RT) 9.吞吐率(Throughout)、并发量(Concurrent))
  • [6.中间件(Middleware)](#文章目录 @[toc] 分布式系统 一、单机架构 二、分布式系统 三、应用服务器集群 四、读写分离 / 主从分离架构 五、引入缓存/冷热分离架构 六、垂直分库 七、微服务架构——业务拆分 代价 优势 八、名词解释 1.应用(Application)/系统(System) 2.模块(Model)/组件(Component) 3.分布式(Distributed) 4.集群(Cluster) 5.主(Master)/从(Slave) 6.中间件(Middleware) 评价指标 7.可用性(Availability) 8.响应时间(RT) 9.吞吐率(Throughout)、并发量(Concurrent))
  • [评价指标](#文章目录 @[toc] 分布式系统 一、单机架构 二、分布式系统 三、应用服务器集群 四、读写分离 / 主从分离架构 五、引入缓存/冷热分离架构 六、垂直分库 七、微服务架构——业务拆分 代价 优势 八、名词解释 1.应用(Application)/系统(System) 2.模块(Model)/组件(Component) 3.分布式(Distributed) 4.集群(Cluster) 5.主(Master)/从(Slave) 6.中间件(Middleware) 评价指标 7.可用性(Availability) 8.响应时间(RT) 9.吞吐率(Throughout)、并发量(Concurrent))
  • [7.可用性(Availability)](#文章目录 @[toc] 分布式系统 一、单机架构 二、分布式系统 三、应用服务器集群 四、读写分离 / 主从分离架构 五、引入缓存/冷热分离架构 六、垂直分库 七、微服务架构——业务拆分 代价 优势 八、名词解释 1.应用(Application)/系统(System) 2.模块(Model)/组件(Component) 3.分布式(Distributed) 4.集群(Cluster) 5.主(Master)/从(Slave) 6.中间件(Middleware) 评价指标 7.可用性(Availability) 8.响应时间(RT) 9.吞吐率(Throughout)、并发量(Concurrent))
  • [8.响应时间(RT)](#文章目录 @[toc] 分布式系统 一、单机架构 二、分布式系统 三、应用服务器集群 四、读写分离 / 主从分离架构 五、引入缓存/冷热分离架构 六、垂直分库 七、微服务架构——业务拆分 代价 优势 八、名词解释 1.应用(Application)/系统(System) 2.模块(Model)/组件(Component) 3.分布式(Distributed) 4.集群(Cluster) 5.主(Master)/从(Slave) 6.中间件(Middleware) 评价指标 7.可用性(Availability) 8.响应时间(RT) 9.吞吐率(Throughout)、并发量(Concurrent))
  • [9.吞吐率(Throughout)、并发量(Concurrent)](#文章目录 @[toc] 分布式系统 一、单机架构 二、分布式系统 三、应用服务器集群 四、读写分离 / 主从分离架构 五、引入缓存/冷热分离架构 六、垂直分库 七、微服务架构——业务拆分 代价 优势 八、名词解释 1.应用(Application)/系统(System) 2.模块(Model)/组件(Component) 3.分布式(Distributed) 4.集群(Cluster) 5.主(Master)/从(Slave) 6.中间件(Middleware) 评价指标 7.可用性(Availability) 8.响应时间(RT) 9.吞吐率(Throughout)、并发量(Concurrent))

分布式系统

一、单机架构

  • 只有一台服务器,来负责所有的工作。(应用程序+数据库服务器在同一台主机上)
  • 在前期,用户访问量少,对于性能和安全要求不高,采用简单的单机架构,不需要运维。
  • 在单机上提供应用服务和数据库服务
  • 如果业务进一步增长,用户量和数据量增多,一太主机无法应付时,就需要引入更多的主机和硬件资源,过度到分布式系统。

二、分布式系统

  • 应用程序和数据库服务器分离。分别放在不同的主机上部署。

  • 一台主机的硬件资源是有限的。(CPU资源、内存、硬盘、网络)服务器每次收到一个请求,都要消耗一些资源。如果同一时刻,收到大量请求,就会导致某项资源不够用,导致服务器处理请求的时间变长,甚至出错。

  • 因此,要进行开源、节流。

    开源:增加更多的硬件资源。增加更多的主机,形成分布式系统。

    节流:在软件上进行优化,根据性能测试找到哪个环节出现了瓶颈,对症下药。

  • 引入分布式,会提高系统的复杂度、提高出现bug的概率。

复制代码
  应用服务 和 数据库服务进行分离。应用服务器,会包含更多的业务逻辑,可能会吃CPU和内存,给应用服务器进行CPU和内存的补强。 数据库服务器,需要更大是硬盘空间、更快的访问速度,需要配置更大的硬盘、上SSD。针对不同的硬件资源需求,进行合理的配置。

三、应用服务器集群

  • 引入负载均衡,应用服务器进行集群。当集群中的某个主机挂了,其他的主机仍任可以承担服务,从而提高系统的可用性。

  • 应用服务器比较吃CPU和内存,引入更多的应用服务器来缓解CPU和内存资源的消耗。

  • 用户的请求,先访问负载均衡器 / 网关服务器(单独的服务器),由负载均衡器(根据算法)来对请求进行分发。(相当于领导,把任务平均分配给属下)

  • 负载均衡器对于请求的承载能力,要远超于应用服务器。负载服务器只进行分配工作,应用服务器来执行任务。

    负载均衡器只需要分配就可以了,而应用服务器考虑的事情就多了~(沟槽的公式)

  • 如果请求量大到负载均衡器扛不住了,就引入更多的负载均衡器(引入多个机房)

    网络游戏中,一个区用户满了,再开一个新区。

四、读写分离 / 主从分离架构

  • 主从数据库,读写分离。降低单个数据库的访问压力
  • 主数据库(master)只复制写文件 ,并把写的数据同步给从数据库
  • 从数据库 (slave)只复制读文件,在实际中,读操作的频率比写操作高
  • 主服务器一般是一个,从服务器可以有多个(一主多从),从服务器可以通过负载均衡的方式让应用服务器来访问。

五、引入缓存/冷热分离架构

  • 将数据区分"冷热"。将热点数据放在缓存中。缓存的访问速度要比数据库快很多
  • 缓存服务器中,只存放一小部分热点数据(频繁被访问的数据 28定律)
  • 缓存速度快,而代价就是容量小
  • 先访问缓存,如果存在,就不需要再读取数据库了。从而提高速度
  • 再修改主数据库的数据时,要同步到缓存和从数据库。

六、垂直分库

​ 引入分布式系统,是为了应对更高的请求量(并发量)的同时,也能应对更大的数据量。当一台主机存不下的时候,就需要引入多台主机来存储数据

  • 针对数据库,进行进一步的拆分(分库分表)
  • 每个数据库服务器,只存储一个、一部分数据库。从而解决数据存储不足的问题。
  • 如果某个表特别大,大到一台主机装不下,也可以对数据表进行拆分(分表)。
  • 在实际中,根据具体的业务场景,来灵活进行拆分。(业余决定技术)

七、微服务架构------业务拆分

  • 当应用服务器中,功能太多太复杂时,为了代码的维护。就需要把应用服务器,拆分成更多的部分。
  • 每个部分只负载一小部分功能,变成功能单一、更小的服务器(微服务)
  • 将应用服务器的业务进行拆分。每组都是多台服务器,来处理更多的并发量。同时,每组服务器,有各自的存储集群和缓存模块

  • 分布式(解决硬件资源)->负载均衡(解决高并发量)->读写分离(降低数据库访问压力)->引入缓存(提高读取速度)->分库分表(解决存储空间不足的问题)->微服务(解决人的问题)

  • 当应用服务器变得复杂时,就需要更多的人来进行维护。按照功能拆分成多组微服务,也有利于组织人员的分配。

代价
  • 系统性能下降:引入微服务,解决了人的问题。但是跨主机网络通信,下降了整个系统的性能。拆分出的更多服务,多个功能之间依赖网络通信,网络通信的速度很可能比硬盘还慢。要想保证性能,就需要引入更多的硬件资源。(为了好的管理成本而对硬件进行充值,万兆网卡,嘎嘎贵!嘎嘎快!引入万兆网卡,就不会因为微服务的网络速度而下降太多的性能)
  • 系统复杂程度提高,服务器更多,出现问题的概率变大,需要一系列手段(更丰富的监控报警、和配套的运维团队),来保证系统的可用性。
优势
  • 1.解决了人的问题。
  • 2.更方便实现功能的服用。
  • 3.可以给不同的服务进行不同的部署。(负载量大的模块配置更好的机器)

八、名词解释

1.应用(Application)/系统(System)

​ 一个应用,就是一个、一组服务器程序

2.模块(Model)/组件(Component)

​ 一个应用里有很多功能,每个独立的功能,就可以成为一个模块/组件

3.分布式(Distributed)

​ 引入多个主机/服务器,协同配合来完成一系列的工作(物理上的多个主机)

4.集群(Cluster)

​ 引入多个主机/服务器,协同配合来完成一系列的工作(逻辑上的多个主机,一个主机上部署了多个服务器程序。这些服务器程序也是通过网络通信,在逻辑上和多个主机没有区别)

5.主(Master)/从(Slave)

​ 分布式系统中比较典型的结构。多个服务器节点,其中一个是主,其余是从。以主节点为为,从节点的数据要从主节点上进行同步

6.中间件(Middleware)

​ 一个、一组和业务无关的服务(功能更通用的服务 :数据库、缓存、消息队列)

评价指标
7.可用性(Availability)

​ 系统整体可用的时间 / 总的时间 (可用性,是一个系统的第一要务)

8.响应时间(RT)

​ 衡量服务器的性能,处理一次请求,要消耗多长时间。越小越好

9.吞吐率(Throughout)、并发量(Concurrent)

​ 衡量系统处理请求的能力,是衡量性能的一种方式

点击移步博客主页,欢迎光临~

相关推荐
uhakadotcom7 分钟前
rAthena:快速入门与基础知识详解,附实用示例代码
面试·架构·github
cooldream20091 小时前
深入理解MVP架构:让UI层与业务逻辑完美分离的设计模式
ui·设计模式·架构·系统架构师
MonkeyKing_sunyuhua1 小时前
2.2 主流大模型架构:GPT、DeepSeek、GLM、Claude、QwQ、Qwen2.5-Max等模型的比较与应用场景
gpt·架构
爱吃泡芙的小白白1 小时前
爬虫学习——使用HTTP服务代理、redis使用、通过Scrapy实现分布式爬取
redis·分布式·爬虫·http代理·学习记录
bookcman1 小时前
Seata 部署手册
后端·架构
丘山子2 小时前
如何在 1000 亿级数据规模下实现高效的去重统计?
后端·面试·架构
纪元A梦2 小时前
Redis最佳实践——性能优化技巧之监控与告警详解
数据库·redis·性能优化
编程一生2 小时前
微服务相比传统服务的优势
微服务·云原生·架构
亿坊电商2 小时前
PHP框架在微服务迁移中能发挥什么作用?
开发语言·微服务·php
uhakadotcom2 小时前
Lovable:用AI轻松打造完整应用,零基础也能快速开发
后端·面试·架构