「架构师训练营第 1 期」第四周作业

用户头像
张国荣
关注
发布于: 2020 年 10 月 18 日

作业一:

一个典型的大型互联网应用系统使用了哪些技术方案和手段,主要解决什么问题?请列举描述。



  1. 本地缓存:直接读写DB或文件无法支持较高的QPS,所以可以对数据进行缓存,缓存的好处是读写速度快,且可以减少DB和文件的压力,但是本地缓存受机器配置的限制,缓存数据量有限,而且会出现和应用程序争用内存的情况。

  2. 分布式缓存:通过集群的方式部署大内存的服务器作为专门的缓存服务器,可以在理论上做到不受内存容量限制的缓存服务。

  3. 反向代理和CDN:基本原理都是缓存,区别在于CDN部署在网络提供商机房,用户在请求网站服务时,可以从距离自己最近的网络提供商机房获取数据。而反向代理则部署在网站的中心机房,当用户请求到达中心机房后,首先访问服务的方向代理服务器,如果反向代理服务器中缓存着用户请求的资源,就将其直接返回。

  4. 负载均衡:互联网应用一般具有高并发的特点,单机处理能力有限,所以都是通过分布式部署来实现可伸缩集群,通过负载均衡调度,将用户的请求均匀的分发到应用服务器集群,如果请求量上升则增加机器,可以实现高峰期扩容,低峰期缩容。

  5. 虚拟化:通过对物理机虚拟化实现资源的高效利用,同时又通过容器隔离部署在同一物理机上的应用,虚拟容器使用时初始化,回收后即可销毁,相当于对物理机进行了一层抽象,让服务依赖抽象的虚拟机,使服务的部署更加高效,更加有弹性。

  6. 消息队列:通过消息队列实现系统间解耦,可以使用消息队列处理一些实时性要求不高,只需要保证最终一致性的业务,如离线文件的写入,触发任务。



用户头像

张国荣

关注

还未添加个人签名 2018.06.26 加入

还未添加个人简介

评论

发布
暂无评论
「架构师训练营第 1 期」第四周作业