架构师训练营第 4 周总结
互联网系统面临的挑战
高并发,大流量
访问通常以亿计
高可用
支持7x24小时不间断访问
海量数据
存储的数据量巨大,百亿、千亿级的数据量
用户分布广泛,网络情况复杂
用户全球分布,各地网络情况也不同
安全环境恶略
网站经常受到攻击
需求快速变更,发布频繁
为了满足用户需求,产品发布频率极高
渐进式发展
从小网站逐渐发展成为大网站
应对高并发的两个技术方向
垂直伸缩
通过升级硬件的方式实现。优点是实现简单,软件不用改变,缺点是达到某个程度后,成本急剧上升;存在物理极限,不可能一直这样升级上去
水平伸缩
通过增加服务器实现。优点是服务器价格便宜,可以使用大量的服务器,缺点是软件系统复杂,需要考虑的问题很多
互联网架构演化
第0阶段:简单的web应用
一台服务器便可部署所有服务
第1阶段:应用数据分离
应用和存储服务部署到不同的服务器上,提高并发和存储容量
第2阶段:使用缓存改善系统性能
使用缓存存储热点数据,加快网站访问速度,也减轻数据库压力
第3阶段:使用应用服务器集群改善系统的并发处理能力
增加服务器构建应用集群,请求由多台服务器处理,提升系统了处理能力
第4阶段:数据库读写分离
当数据库成为瓶颈时,可以将数据库部署为一主多从的方式,主数据库负责写,从数据库负责读,改善数据库负载
第5阶段:使用反向代理和CDN加速网站响应
部署CDN和反向代理,加速网站访问速度,减轻后端压力
第6阶段:使用分布式文件系统和分布式数据库系统
使用分布式文件系统和分布式数据库应对持续增长得业务需求
第7阶段:使用NoSQL和搜索引擎
应对复杂业务对数据存储和检索的需求
第8阶段:业务拆分
将复杂业务进行拆分多个服务,分别部署到不同的服务器上
第9阶段:微服务及中台化
第10阶段:大数据及智能化
架构模式
架构模式是互联网可重复使用的一些解决方案,解决互联网系统遇到的问题
分层
将系统在横向维度上切分成几个部分,每层负责一定的职责,上层依赖下层服务。通常可分为三层,应用层、服务层、数据层。通过分层,方便开发以及分布式部署
分割
对软件进行纵向切分,包装成独立的模块单元,便于开发和维护,也便于分布式部署
分布式
通过将系统分布式部署,可以使用更多CPU、内存、存储等资源,支持的高并发访问和海量存储
集群
将多台服务器部署相同的应用组成集群,提高系统的可用性
缓存
常用的缓存设计有:CDN、反向代理、本地缓存和分布式缓存。缓存可以加快数据访问速度,减轻后端应用和数据库压力
异步
通过使用队列的方式实现请求异步处理,可以提高系统可用性,加快网站响应速度。
冗余
通过数据备份、服务集群部署,可以消除服务器故障带来数据丢失以及服务不可用等问题
自动化
对于大型网络互联网应用系统,运维复杂,需要尽可能的自动化,减少人为操作失误,提高运维效率。
安全
需要各种安全措施,以保证网站不被攻击,用户信息不被泄露。
互联网架构核心要素
高性能
包含响应时间、TPS、吞吐量等指标
高可用
通过集群部署服务,数据冗余备份等方式实现高可用
可伸缩
能够不断向集群中添加服务器应对增长的请求
可扩展
方便功能扩展,快速响应需求
安全
保护系统不受恶意攻击,重要数据不被窃取
评论