从单体架构到分布式架构的演变历程

守听  金牌会员 | 2025-1-22 21:39:59 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 871|帖子 871|积分 2613

单体架构

单体架构,就是一台机器负责所有的工作。(此处假设是一个电商网站)

假如业务进一步发展,用户量和数据量都会随之增长。当一台主机无法满足需求时,就需要引入更多的主机并增加硬件资源。
而引入更多的主机就可以说是引入分布式架构了。
数据库和应用分离

应用程序和数据库服务器,分别放到差别主机上摆设了。
应用服务器:里面可能会包含很多的业务逻辑,可能就会吃CPU和内存
数据库服务器,需要更大的硬盘空间,更快的数据访问速度。可以配置更大硬盘的服务器,甚至还可以上SSD硬盘(固态硬盘)【机械硬盘更便宜,更慢】【固态硬盘更贵更快】
让应用服务和数据库服务分离可以达到更高的性价比

引入负载平衡=>集群

通过负载平衡器,把请求比较匀称的分发给集群中的每个应用服务器。
应用服务器每每比较泯灭 CPU 和内存资源。假如 CPU 或内存被耗尽,应用服务器就可能无法正常运行。引入更多的应用服务器可以有效办理这个标题。此时,引入负载平衡器,它就如同公司一个小组的领导,负责管理并将任务分配给各个组员。
用户的请求首先会抵达负载平衡器或网关服务器。假设存在一万个用户请求,由两个应用服务器分别负担五千个访问量。
当集群中的某个主机挂了,其他的主机仍旧可以负担服务,提高了整个系统的可用性。

是否会出现请求量大到连负载平衡器也无法承受的情况呢?这种情况是有可能发生的。此时,可以引入更多的负载平衡器(例如引入多个机房的负载平衡设备)。
引入读写分离、数据库主从结构

一个数据库节点作为主节点,其他N个数据库节点作为从节点。主节点负责 写 数据,从节点负责 读 数据。主节点需要把修改过的数据同步给从节点。
现实的应用场景中,读的频率是比写要高的。
主服务器一般是一个,从服务器可以有多个(一主多从),同时从数据库通过负载平衡的方式,让应用服务器举行访问

引入缓存,冷热数据分离

进一步提高了服务器对请求的处置惩罚能力。
在一个分布式系统中,Redis 通常扮演着缓存的脚色。
数据库自然存在一个标题,即响应速度相对较慢。将数据区分为 “热数据” 和 “冷数据”,把热点数据放置到缓存中,缓存的访问速度每每比数据库快很多。
数据库存储的仍旧是完整的全量数据。只是放一小部门热点数据(会频繁访问到的数据)到缓存中(Redis)。
此时,缓存服务器就帮助数据库服务器负重前行。。

如许也引入一个标题:数据库和缓存的数据划一性标题
引入分库分表

引入分布式系统,不但要能够应对更高的请求量(并发量),还要能够应对更大的数据量。
是否会出现一台服务器存不下数据的情况呢?答案是肯定的。
当一台主机存不下数据时,就需要多台主机来举行存储。
对数据库举行进一步拆分,即分库。原本一个数据库服务器上有多个数据库(这里指的是逻辑上的数据集合,通过 create database 创建的那个东西)。现在可以引入多个数据库服务器,每个数据库服务器存储一个或一部门数据库。
假如某个表特别大,大到一台主机存不下,也可以针对表举行拆分。

引入微服务

从业务层面进一步拆分应用服务器。从业务功能的角度出发,将应用服务器拆分为更多功能更单一、更简单、规模更小的服务器。
微服务本质上是在办理 “人” 的标题。因为当应用服务器变得更加复杂时,就需要更多的人来举行维护,这就涉及到分别构造结构和人员结构。

微服务的优势如下:

  • 有效办理了人的标题。当应用服务器变得复杂后,需要更多人力维护,而微服务便于分别构造结构和人员结构。
  • 采用微服务能够更便捷地实现功能复用。
  • 可以针对差别的服务举行独立摆设。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

正序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

守听

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表