分布式系统,你了解多少呢

本期只是简单了解,想要深入学习,还需要看看其他资源~

目录

一、单机架构

二、数据库和应用分离

三、负载均衡——应用服务器

四、读写分离——数据库主从结构

五、引入缓存——冷热数据分离

六、分库分表——数据库扩展空间

七、微服务——进一步拆分应用服务器


一、单机架构

        在了解分布式之前,我们当然是要先了解一下什么是单机架构?

        单机架构,从字面就可以理解,就是只有一台服务器,该服务器来负责所有工作~

示图:

  • 上述中的应用服务,也就是我们以前开发过的,例如我做的是Java-Spring,就是写了一个HTTP服务器
  • 上述的数据库服务,也是我们用过的——MySQL,MySQL其实本来就是一个客户端服务器结构的程序,他的本体是MySQL服务器(本体就是存储和组织数据的部分)。既然MySQL就是一个客户端服务器,那谁是他的客户端呢,应用服务就是他的客户端,就是上述所说的HTTP服务器~
  • 上述中,也可以不要数据库服务,直接在应用服务中解决数据问题,但这种实现起来更麻烦
  • 当遇到服务器不够用时,解决办法:1、开源:引入更多的硬件资源-但这上限要取决于该主机的主板的扩展能力2、节流:在软件上优化,对于程序员水平要求较高
  • 在单机架构,如果说硬件资源被我们充分利用后,还是不满足我们的使用,也就是一台主机应付不了了,此时就可以引入更多的主机,一旦引入多台主机,该系统就叫做是“分布式系统”

二、数据库和应用分离

字面意思,就是将上述的应用服务和数据库服务分离开,示图:

  • 应用服务器,内部可能会包含很多的业务逻辑,可能会比较吃CPU和内存
  • 数据库服务器,需要更大的硬盘空间,更快的数据访问速度,可以配置更大硬盘的服务器,甚至还可以上SSD(固态硬盘) 
  • 综合上述服务器的特点,为了达到更高的性价比,我们可以给不同的服务器配置不同的硬盘

三、负载均衡——应用服务器

        负载均衡,就是当我们引入多台主机作为应用服务器时,要使用负载均衡,使得各个应用服务器所承载的压力是相对来说比较平均的,示图:

  • 由于应用服务器可能会比较吃CPU和内存,所以当CPU和内存吃完了,应用服务器就顶不住了,因此引入更多的应用服务器,但又担心,请求随机分配而导致可能都分配都同一台主机上,因此就需要负载均衡了~
  • 对于负载均衡器来说,有很多的负载均衡的具体算法,例如:根据用户id,再通过模运算来分配
  • 还有就是不用担心负载均衡不够用了怎么,首先负载均衡就相当于公司领导,应用服务器就是普通员工,所以领导只管分配任务,也就是请求量的承担能力会远超过应用服务器;其次,就算是请求量太大了,负载均衡器扛不住了,我们大可以引入更多的负载均衡器~
  • 小提示:机器变多了,管理成本就会提高,出错率也会提高

四、读写分离——数据库主从结构

        因为在绝大多数实际应用场景中,读的频率是要比写高很多的,因此将读写分离,进一步提升性能,示图:

  • 主服务器一般是一个,从服务器有多个(一主多从)~
  • 同时 从 数据库通过负载均衡的方式,让应用服务器进行访问~

五、引入缓存——冷热数据分离

        数据库有个天然问题就是,响应速度慢!再结合,数据遵循的二八原则,因此我们把数据区分为“冷热”,热点数据放到缓存中,缓存的访问速度是比数据库快非常多的~示图:

  • 存储服务器中,存储的是完整数据
  • 缓存服务器中只存放一小部分的热数据-百分之二十的数据能够支持百分之八十的访问量~实际情况略有差异~ 

六、分库分表——数据库扩展空间

        引入分布式系统,不仅会面临更高的请求量,也会面临更大的数据量,也就是说,会存在一台服务器存不下数据,例如存储视频,可能就会导致这种问题,图示:

  • 情况一:表特别大,要拆分表
  • 情况二: 库特别大,拆分库,每个数据库服务器存储一部分数据库

七、微服务——进一步拆分应用服务器

        当业务越来越庞大时,一个服务器程序中可能有很多的业务,就会导致服务器的代码越来越复杂。而为了便于维护代码,就可以把一个复杂的服务器拆分成更多的,功能更单一的,但是更小的服务器——微服务

图示:

  • 服务器的种类和数量增加
  • 应用服务器复杂后,维护的人就要增多,微服务更利于给人划分领域,把这些人组织好,按照功能,拆分成多组微服务,就可以有利于人员的组织结构分配了,也就是说,微服务就是解决了人的问题
  • 系统的性能下降。为保证下降不能太多,就需要引入更多的机器,更多的硬件资源~【拆分出来的服务,多个功能之间要更依赖网络通信,而网络通信的速度很可能比硬盘还要慢】
  • 可用性受到影响。服务器多,出问题的概率增加~【需要更丰富的监控报警,以及配套的运维人员】
  • 可以给不同的额服务进行不同的部署

本期只是简单了解,想要深入学习,还需要看看其他资源~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

龙洋静

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值