(CDN工作机制)Web请求过程全解析三

CDN简介:

CDN内容分布式网络(Content Delivery Network)

特点:构筑在现有的Internet上的一种先进的流量分配网络

目的:通过现有的Internet中增加一层新的网络架构,将网站内容发送到最接近用户的网络“边缘”,使用户可以就近取得所需内容,提高用户访问网站的响应速度。提高Internet中信息流动的效率。

CDN=镜像(Mirror)+缓存(cache)+整体负载均衡(GSLB)

应用:目前CDN都以缓存网站中静态数据为主,如CSS,JS,图片和静态页面等数据。用户在从主站服务器请求到动态内容后,再从CDN上下载这些静态数据。

CDN的目标:

1.可扩展。性能可扩展:应对新增的大量数据、用户和事务的扩展能力。成本可扩展性:用低廉的运营成本提供动态的服务能力和高质量的内容分发。

2.安全性。强调提供物理设备、网络、软件、数据和服务过程的安全性,减少因为DDos攻击或者其他恶意行为造成商业网站的业务中断。

3.可靠性、响应和执行。服务可用性指能够处理可能的故障和用户体验下降的问题,通过负载均衡及时提供网络的容错机制

(CDN工作机制)Web请求过程全解析三_第1张图片

                                                                                             Web请求过程

一个用户访问某个静态文件,这个静态文件的域名假如是cdn.taobao.com,那么首先要向Local DNS服务器发起请求时Local DNS时将其CNAME解析到另一个域名,然后通过DNS解析,这个域名最终会被指向CDN全局中的DNS负载均衡服务器,再由这个GTM来最终分配是哪个地方的访问用户,返回给离这个访问用户最近的CDN结点。用户拿到这个CDN结点访问这个静态文件,如果所请求的文件不存在,就会再回到源站去获取这个文件,然后再返回给用户。

负载均衡

负载均衡的作用这里不再描述,通用的三种负载均衡架构分别为1.链路负载均衡、2.集群负载均衡、3.操作系统负载均衡

1.链路负载均衡

原理:根据访问的域名,通过DNS解析成不同的IP,然后用户根据这个IP来访问不同的目标服务器。

(CDN工作机制)Web请求过程全解析三_第2张图片

                                                                                    链路负载均衡

链路负载均衡是由DNS解析完成的,用户最终访问访问哪个Web Server 是由DNS Server来控制的,在上图中就是由Global DNS Server来动态解析域名服务。

优点:访问速度快。

原因:1.直接访问目标服务器。2.不经过其他服务器代理。

缺点:由于DNS在用户本地和Local DNS Server都有缓存,一旦某台Web Server挂掉,就很难及时更新用户的域名解析结构。如果用户的域名没有及时更新,那么就无法访问这个域名,带来后果非常严重。

2.集群负载均衡

集群负载均衡分为硬件负载均衡和软件负载均衡。

硬件负载均衡一般使用一台专门的硬件设备来转发请求(所以这个硬件相当贵,eg:F5)

(CDN工作机制)Web请求过程全解析三_第3张图片

                                                                         硬件负载均衡

优点:性能非常好

缺点:贵,当访问量陡然增大超出服务极限时,不能进行动态扩容

软件负载均衡

在一台或多台服务器相应的操作系统上安装一个或多个附加软件来实现负载均衡,可以满足一般的负载均衡需求。目前比较流行的就三类软件负载均衡,LVS、Nginx和HAProxy。用的最多的还是LVS和Nginx这两种。(根据访问用户的HTTP请求头来进行负载均衡,eg:根据不同的URL来请求转发到特定机器或者根据用户的Cookie信息来指定访问机器)

优点:基于特定环境,配置简单,使用灵活,成本低廉。

缺点:经过多层代理服务器是会增加网络延时。

(CDN工作机制)Web请求过程全解析三_第4张图片

                                                                                           软件负载均衡

操作系统负载均衡

利用操作系统级别的软件中断或者硬件中断来达到负载均衡,如可以设置多列网卡等来实现。

拓展:CDN动态加速

原理:在CDN的DNS解析中通过动态的链路探测来寻找回源最好的一条路径,然后通过DNS调度将所有请求调度到选定的这条路径上回源,从而加速用户访问的效率。

如何选定回源最好的一条路径?

当用户接入CDN结点后,在每个CDN节点上从源站下载一个一定大小的文件,看哪个链路耗时最短,这样就构成了一个链路列表,然后绑定到DNS解析上,更新到CDN的Local DNS 。当然选定CDN结点需要考虑的因素比较多,这里的方法仅限于耗时最短这个条件。

你可能感兴趣的:(网络)