架构师训练营第 4 周总结

用户头像
aoeiuvzcs
关注
发布于: 2020 年 07 月 03 日

互联网系统面临的挑战

  1. 高并发,大流量

访问通常以亿计

  1. 高可用

支持7x24小时不间断访问

  1. 海量数据

存储的数据量巨大,百亿、千亿级的数据量

  1. 用户分布广泛,网络情况复杂

用户全球分布,各地网络情况也不同

  1. 安全环境恶略

网站经常受到攻击

  1. 需求快速变更,发布频繁

为了满足用户需求,产品发布频率极高

  1. 渐进式发展

从小网站逐渐发展成为大网站



应对高并发的两个技术方向

  1. 垂直伸缩

通过升级硬件的方式实现。优点是实现简单,软件不用改变,缺点是达到某个程度后,成本急剧上升;存在物理极限,不可能一直这样升级上去

  1. 水平伸缩

通过增加服务器实现。优点是服务器价格便宜,可以使用大量的服务器,缺点是软件系统复杂,需要考虑的问题很多



互联网架构演化

  1. 第0阶段:简单的web应用

一台服务器便可部署所有服务

  1. 第1阶段:应用数据分离

应用和存储服务部署到不同的服务器上,提高并发和存储容量

  1. 第2阶段:使用缓存改善系统性能

使用缓存存储热点数据,加快网站访问速度,也减轻数据库压力

  1. 第3阶段:使用应用服务器集群改善系统的并发处理能力

增加服务器构建应用集群,请求由多台服务器处理,提升系统了处理能力

  1. 第4阶段:数据库读写分离

当数据库成为瓶颈时,可以将数据库部署为一主多从的方式,主数据库负责写,从数据库负责读,改善数据库负载

  1. 第5阶段:使用反向代理和CDN加速网站响应

部署CDN和反向代理,加速网站访问速度,减轻后端压力

  1. 第6阶段:使用分布式文件系统和分布式数据库系统

使用分布式文件系统和分布式数据库应对持续增长得业务需求

  1. 第7阶段:使用NoSQL和搜索引擎

应对复杂业务对数据存储和检索的需求

  1. 第8阶段:业务拆分

将复杂业务进行拆分多个服务,分别部署到不同的服务器上

  1. 第9阶段:微服务及中台化

  2. 第10阶段:大数据及智能化



架构模式

架构模式是互联网可重复使用的一些解决方案,解决互联网系统遇到的问题

  1. 分层

将系统在横向维度上切分成几个部分,每层负责一定的职责,上层依赖下层服务。通常可分为三层,应用层、服务层、数据层。通过分层,方便开发以及分布式部署

  1. 分割

对软件进行纵向切分,包装成独立的模块单元,便于开发和维护,也便于分布式部署

  1. 分布式

通过将系统分布式部署,可以使用更多CPU、内存、存储等资源,支持的高并发访问和海量存储

  1. 集群

将多台服务器部署相同的应用组成集群,提高系统的可用性

  1. 缓存

常用的缓存设计有:CDN、反向代理、本地缓存和分布式缓存。缓存可以加快数据访问速度,减轻后端应用和数据库压力

  1. 异步

通过使用队列的方式实现请求异步处理,可以提高系统可用性,加快网站响应速度。

  1. 冗余

通过数据备份、服务集群部署,可以消除服务器故障带来数据丢失以及服务不可用等问题

  1. 自动化

对于大型网络互联网应用系统,运维复杂,需要尽可能的自动化,减少人为操作失误,提高运维效率。

  1. 安全

需要各种安全措施,以保证网站不被攻击,用户信息不被泄露。



互联网架构核心要素

  1. 高性能

包含响应时间、TPS、吞吐量等指标

  1. 高可用

通过集群部署服务,数据冗余备份等方式实现高可用

  1. 可伸缩

能够不断向集群中添加服务器应对增长的请求

  1. 可扩展

方便功能扩展,快速响应需求

  1. 安全

保护系统不受恶意攻击,重要数据不被窃取

用户头像

aoeiuvzcs

关注

还未添加个人签名 2018.03.25 加入

还未添加个人简介

评论

发布
暂无评论
架构师训练营第4周总结