浅谈架构的演进阶段

文章目录

1.单机架构

出现在互联网的早期,访问量比较小;

输入这个taobao.com之后,但是域名并无法告知是哪个服务器,这个时候就会需要进行这个dns转换,这样我们的浏览器或者服务器就会找到这个门牌号,对于这个服务器进行访问;

放到这个端口绑定的应用服务之后,应用服务:你要干什么?我们:查一下你的这个里面有什么商品,你等一下,我查一下,这个数据库服务查询之后返回结果,应用服务收到信息直接返回给我们的用户;

dns只会在最开始告诉我们门牌号,后来我们的应用服务直接回返回给这个浏览器或者这个app被我们的用户看到;

优点和缺点:

1)部署简单且使用的成本比较低;

2)存在性能的瓶颈(用户的请求量会不断的增加,慢慢的就扛不住了),应用服务和数据库服务之间相互进行这个资源的竞争(访问的时候转转,访问的速度变慢);

其他事项:

1)初创公司使用,用户的访问量比较低,及时挂掉也影响不大;

2)dns转换主要是这个应用上提供的,我们直接使用;

2.应用数据分离架构

工作的原理:

优缺点:

1)成本相对可控;

2)性能相比于单机架构有所提高;

3)数据库单独隔离,不会因为我们的应用数据库坏的时候,数据库挂掉,使得我们的这个数据库有容灾能力;

4)但是相对于我们的海量的并发,还是扛不住;

5)因为这个时候两个服务器是分离的,所以消耗的这个硬件的资源就会变多;

3.应用服务集群架构

3.1基本分析

出现的原因:

1)请求量变大,因此我们需要加多应用(否则这个相应的速度就会越来越大);

3.2技术案例分析

3.3有缺段分析

可以进行横向的扩展,支持海量的请求;

但是这个mysql成为了性能的瓶颈,而且这个硬件的成本增加;

4.读写分离架构

4.2技术案例:

1)主数据库接收到这个写的内容之后,会进行同步到我们的这个从数据库上面的;

4.3优缺点的浅谈

读写的性能提高;

出现异常挂掉的时候,会出现主从数据库里面的内容不一致的情况;

热点数据读取的时候仍然会让这个数据库里面的这个负载很高;

5.冷热分离架构

5.1简单介绍

5.2过程分析

秒杀的案例分析:写入的过程

我们的商家想要发布这个秒杀的商品项目,第一步还是进行这个dns的转换,把这个域名转换为我们的ip地址,方便我们去进行这个对应的写入的过程;

这个写入需要写入两份,一份是给我们的这个缓存服务器的,另一份是给我们的这个存储服务器的,两个写入的过程先后顺序是任意的,但是需要保证同时写入成功,或者都写入不成功,不然就会出现这个数据库的数据内容不一致的情况;

我们的合格主数据库写入之后就会给我们的这个从数据库进行这个写入数据的同步,这个时候我们的商家就把这个秒杀的项目完成了这个上架的过程;

如果我们的这个用户进行访问:

访问的如果是我们商家的这个秒杀的项目,这个时候执行的就是这个红色的路径,因为这个时候这个秒杀的内容就是在我们的这个缓存里面存放着的,这个时候访问之后就可以直接获取到了,这个里面的数据就是一些这个热点的数据;

相反,如果这个用户访问的是这个不是很热的数据,也不是我们的这个秒杀的项目,这个时候就会执行我们的这个绿色的操作,这个时候依然回去到这个缓存里面去寻找,只不过这个时候没有找到,所以我们时候就回到我们的从数据库里面去找,找到这个相关的商品的信息,然后把这个信息显示在用户的这个浏览器上面,让我们的这个用户获取到;

5.3技术案例

我们的这个缓存可以使用我们的redis;

5.4优缺点浅谈

业务体量的变大导致这个数据量进一步增加,这个时候我们的数据库里面的单表的容量就会进一步变大,使得我们的这个数据库再一次成为这个性能的瓶颈;

6.垂直分库架构

6.1 简单介绍

演示:不管你的这个背后是是什么,我就是把你当作一个表进行看待,但是实际上这个背后是一个数据库集群;

7.微服务架构

我们的不同的微服务之间是进行相互的关联和协作的;

8.容器编排架构

9.总结

满足业务需求就可以了,不一定必须动不动就上微服务;

一千个读者的心目里面由一千个哈姆莱特,不同人的理解和这个架构的演进的阶段的理解是不一样的,有自己的这个理解和体会即可;

相关推荐
N串4 小时前
供应链系统设计-中台系统设计系列(四)- 衡量好中台的指标体系
架构·系统架构
NoneCoder5 小时前
CSS系列(16)-- 架构与模式详解
前端·css·架构
独孤求败Ace7 小时前
第18天:信息收集-Web应用&搭建架构&指纹识别&WAF判断&蜜罐排除&开发框架&组件应用
前端·人工智能·安全·网络安全·架构·系统安全
uhakadotcom8 小时前
个人拥有VPS云服务器的100个新颖有趣用途
后端·架构·github
CloudWeGo9 小时前
ROG:高性能 Go 实现
开发语言·微服务·云原生·架构·golang·rust·开源
phenomenal9918 小时前
微服务-01【续】
java·微服务·架构
李宥小哥19 小时前
架构实践02-高性能架构模式
架构
极客先躯19 小时前
rabbitMQ 架构详解
分布式·架构·rabbitmq·exchange·broker·queue·binding