架构师训练营第 4 周作业
一个典型的大型互联网应用系统使用了哪些技术方案和手段,主要解决什么问题?请列举描述。
DNS(域名解析)
在公网上,可以通过域名解析,转化成为服务器的IP地址,当有多个服务器IP地址的时候,DNS也起到负载均衡的作用。
CDN(内容分发网络)
互联网应用的用户群体分布广泛,位于全国甚至全球的各个地区,网站的静态资源(图片、音频、视频、文档),可以缓存到CND的节点上,用户可以通过就近的节点下载对应的资源,减轻服务器的网络带宽压力,也减少了因为长距离网络请求带来的延迟,CDN的较大的带宽相比服务器有限的带宽,也保证了用户下载资源的速度,提高了用户的体验。
LVS(Linux Virtual Server)
请求通过域名解析,找到对公IP后,转到服务器内部,使用LVS来做入口负载均衡,避免请求过于集中而引发请求超时和失败。
Keeplive
提供虚拟IP,让多个IP作为一组对外提供服务,避免单点故障后,导致服务不可用。
NGINX(反向代理)
可以作为供负载均衡(相对于LVS来说,处理的请求数相对少一点,是进一步的负载均衡),也会做一些静态资源的缓存,也可以配置一些规则,过滤一些非法请求。
缓存服务
互联网应用的大部分请求都是查询请求,使用了缓存服务,可以大大减轻了数据库的查询压力,由于缓存服务器采用的都是内存访问,相比查询数据库,效率会高很多,减少了请求的消耗时间,提高了应用服务器的吞吐量。
集群
包括了应用服务集群、缓存服务集群、数据库集群等等,目的是做服务冗余,由多个节点共同对外提供统一的服务,避免单点故障导致服务中断,也可以配合负载均衡策略或者路由策略来做到减轻单点服务压力。
评论