「架构师训练营第 1 期」第四周作业
作业一:
一个典型的大型互联网应用系统使用了哪些技术方案和手段,主要解决什么问题?请列举描述。
本地缓存:直接读写DB或文件无法支持较高的QPS,所以可以对数据进行缓存,缓存的好处是读写速度快,且可以减少DB和文件的压力,但是本地缓存受机器配置的限制,缓存数据量有限,而且会出现和应用程序争用内存的情况。
分布式缓存:通过集群的方式部署大内存的服务器作为专门的缓存服务器,可以在理论上做到不受内存容量限制的缓存服务。
反向代理和CDN:基本原理都是缓存,区别在于CDN部署在网络提供商机房,用户在请求网站服务时,可以从距离自己最近的网络提供商机房获取数据。而反向代理则部署在网站的中心机房,当用户请求到达中心机房后,首先访问服务的方向代理服务器,如果反向代理服务器中缓存着用户请求的资源,就将其直接返回。
负载均衡:互联网应用一般具有高并发的特点,单机处理能力有限,所以都是通过分布式部署来实现可伸缩集群,通过负载均衡调度,将用户的请求均匀的分发到应用服务器集群,如果请求量上升则增加机器,可以实现高峰期扩容,低峰期缩容。
虚拟化:通过对物理机虚拟化实现资源的高效利用,同时又通过容器隔离部署在同一物理机上的应用,虚拟容器使用时初始化,回收后即可销毁,相当于对物理机进行了一层抽象,让服务依赖抽象的虚拟机,使服务的部署更加高效,更加有弹性。
消息队列:通过消息队列实现系统间解耦,可以使用消息队列处理一些实时性要求不高,只需要保证最终一致性的业务,如离线文件的写入,触发任务。
评论