《架构师训练营》-第四周-架构演进

    技术2022-07-10  134

    高并发挑战的两个方法

    垂直伸缩

    垂直伸缩是指提升单台服务器硬件,不需要改变系统软件架构。

    缺点

    当硬件提升到一定程度之后,提升的性能和价格性价比不高

    水平伸缩

    水平伸缩是指增加服务器,将系统由单机扩展为集群,以此来获取性能提升。

    缺点

    初期需要投入较多的人力来实现系统的集群。

    架构演化

    第零阶段

    单机部署应用程序,文件服务器和数据库,如下图:

    第一阶段

    当发现单台的网络带宽,CPU,IO不足时,可以将文件服务器和数据库独立部署,如下图

    第二阶段

    当发现请求频繁的访问数据库,导致响应偏慢,可以考虑增加缓存组件,如下图:

    第三阶段

    当请求并发到一定程度,发现单台应用服务器无法支撑时,需要考虑应用服务器集群,如下图

    第四阶段

    应用服务器支持高并发,有可能数据库的连接数不够或者响应跟不上,导致请求耗时过长,可以考虑对数据库进行读写分离(通过第三方组件自动实现读写分离),如下图

    第五阶段

    当发现文件服务器的带宽不够用时,可以考虑CDN加速,如下图:

    第六阶段

    当读写分离之后,数据库还是无法支持高并发,考虑将数据库进行集群,如下图:

    第七阶段

    引入noSQL和搜索引擎,如下图:

    第八阶段

    将业务拆分,也就是微服务。如下图:

    第九阶段

    引入数据中台(参考知乎:https://zhuanlan.zhihu.com/p/75223466),如下图:

    架构模式

    分层

    将系统分持久层,业务逻辑层,控制层等

    分割

    将不同功能进行分割,例如可以将用户管理分割成单独的功能

    分布式

    将一个大的系统拆分成几个子系统

    集群

    对系统进行集群部署

    缓存

    CDN反向代理:将请求转发到内部服务器本地缓存:客户端缓存远程缓存:服务端缓存

    异步

    将一个业务复杂的逻辑分成多个异步执行。可以提供系统可用性,加快响应速度,消除并发访问高峰(削峰)

    冗余

    服务器冗余,数据冗余备份

    自动化

    例如自动重启

    安全

    加密协议加密存储网站验证码访问敏感信息过滤

    衡量架构设计的指标

    高性能

    快速响应

    高可用

    宅备

    可伸缩

    集群

    可扩展

    系统的扩展性

    互联网架构技术一览

    Processed: 0.012, SQL: 9