架构师训练营第 4 周:系统架构
一. 大型应用系统使用了哪些技术
(一). CDN
CDN 的全称是 Content Delivery Network,即内容分发网络。是构建在现有网络基础之上的虚拟网络,依靠部署在各地的边缘服务器,通过中心平台的负载均衡、内容分发、调度等功能模块,使用户就近获取所需内容,降低网络拥塞,提高用户访问响应速度和命中率。
(二)反向代理
反向代理服务器位于用户与目标服务器间,用户直接访问反向代理服务器就可以获得目标服务器的资源,不需要知道目标服务器的地址,也无须在用户端作任何设定。反向代理服务器通常可用来作为 Web 加速,即使用反向代理作为 Web 服务器的前置机来降低网络和服务器的负载,提高访问效率。
(三). 负载均衡
在原有网络结构之上,它提供了一种透明且有效的方法扩展服务器和网络设备的带宽、加强网络数据处理能力、增加吞吐量、提高网络的可用性和灵活性。
(四). 分布式消息队列
消息队列是分布式系统中重要的组件,主要解决应用耦合,异步消息,流量削锋等问题。实现高性能,高可用,可伸缩和最终一致性架构。是大型分布式系统不可缺少的中间件。
(五). 分布式缓存
分布式缓存是为了解决 web 服务器与数据库服务器间的瓶颈,如果访问流量大,这个瓶颈就越大,数据库的读取压力将会非常大。为了分担数据库的压力,需要将数据缓存起来,这是可以在业务层,缓存数据。
二. 学习总结
(一). 互联网系统面临第挑战
需要面对高并发用户,大流量访问
高可用:系统7×24小时不间断服务
需要存储、管理海量数据
用户分布广泛,网络情况复杂
(二). 应对高并发的两个方向
垂直伸缩
升级硬件和网络吞吐能力,是最简单的短期伸缩性方案
达到某个程度后,增加计算能力需要的更多的花费。并且垂直伸缩有物理极限
水平伸缩
通过增加服务器提升计算能力
可以克服垂直伸缩带来的单位计算成本随计算能力增加而迅速飙升的问题
(三). 互联网架构的演练
最简单的互联网应用架构
应用数据分离
使用缓存改善系统性能
使用集群改善系统的并发能力
数据库读写分离
使用反向代理和 CDN 加速网站响应
使用分布式文件系统和分布式数据库系统
使用 NoSQL 和搜索引擎
微服务及中台化
大数据及智能化
评论