架构师训练营第 4 期作业 / 学习总结
一个典型的大型互联网应用系统使用了哪些技术方案和手段,主要解决什么问题?请列举描述。
高并发,高可用,高性能,可扩展
系统架构方面
微服务架构
根据不同业务垂直拆分成微服务,方便分团队开发,各团队使用不同技术栈。
能够快速迭代,每个服务可以单独升级。
单个服务可以水平伸缩,应对高并发场景。
容器,k8s集群
微服务的部署,有蓝绿部署,滚动部署,灰度部署,金丝雀部署等方式,为了降低系统上线的风险,不停机更新,以达到系统高可用的目的。
中台架构
提高后端服务的可复用能力,可以基于中台服务快速开发新业务
安全性方面
https,加密
SSO,OAuth2.0 统一管理用户权限,访问控制
数据库方面
读写分离
将数据库分为了主从库,一个主库用于写数据,多个从库完成读数据的操作。
大多数互联网业务,往往读多写少,这时候,数据库的读会首先称为数据库的瓶颈,这时,如果我们希望能够线性的提升数据库的读性能,消除读写锁冲突从而提升数据库的写性能。
读写分离是用来解决数据库读性能瓶颈。
水平切分
通过算法,将数据库进行分割的架构。一个水平切分集群中的每个数据库,通常称为一个“分片”。每一个分片中的数据没有重合,所有分片中的数据并集组成全部数据。
大部分的互联网业务,数据量都非常大,单库容量最容易成为瓶颈,当单库的容量成为了瓶颈,我们希望提高数据库的写性能,降低单库容量的话,就可以采用水平切分了。
nosql数据库,搜索引擎
特定场景下使用,处理大规模的数据
消息队列
异步处理,消除访问高峰
用于不同系统间通信,解耦
缓存/CDN
分布式缓存,降低数据库读压力
动静分离,静态资源放在CDN上,提高网站静态资源访问速度
评论