首页 > 代码库 > 初识CDN

初识CDN

一、概念

1、什么是CDN?

         CDN的全拼是(Content Delivery Network),即内容分发网络。其基本思想是尽可能避开互联网上有可能影响数据传输速度和稳定性瓶颈的环节,使内容传输的更快、更稳定。通过在网络各处防止节点服务器所构成的在现有的互联网基础之上的一层只能虚拟网络,CDN系统能够实时地根据网络流量和各个节点的连接、负载情况以及到用户的距离和响应时间等综合信息将用户的请求重新导向离用户最近的服务器节点上。其目的是使得用户就近取得所需内容,解决Internet网络拥挤的情况,提高用户访问网站的响应速度。


 

二、何时用?

        什么时候使用CDN呢? 当我们的网站含有大量的图片或者静态页面站点,为了提高用户访问速度,提高站点的稳定性,我们可以选择使用CDN。

CDN和我们的关系?

我们来看下图。



        根据上图的步骤,解析如下:

        ①“上传文件”:这里的“上传文件”实际上我们没有把我们服务器中的资源上传到CDN服务器上,而是我们给CDN一个我们服务器资源的地址给CDN,CDN会根据我们给他的这个地址找到我们服务器上的资源(DI DependencyInjection依赖注入)

 

        ②CDN的上传中心会找到我们服务器中的资源,他自己会分发到不同他自己不同地点的服务器,比如上海、深圳、天津等地点所以上图中的ServerFarm是在不同的地址,至于CDN如何分发的我们就不需要关心了。这就相当于京东的分发点一样,京东的次日达的实现,是因为在不同的城市自己的商品销售点,这样相当于是同城发货,速度很快,我们的CDN和这原理是一样的。

        ③当用户访问我们的网站的时候,访问同一个链接地址,对我们的地址进行访问时,同时就会对我们的资源请求。

        ④我们就会请求到CDN,CDN的GLB进行判断是哪个地区的,上海的用户访问时就会调用CDN分发到上海的资源,深圳的用户访问时就会调用CDN分发到深圳的资源,CDN的GLB会根据自己的算法智能的找到离用户最近的资源。

        ⑤CDN把离着用户最近的路径传送给用户,这样不同的地区的用户访问我们的网站就会看到相同的页面,但实际上页面上请求的资源来自不同的地区。

 

三、怎么用?

       我们以XX系统和CDN交互为例。

为了实现每次和CDN交互都要去和CDN对接,所以抽象出把和CDN对接的部分抽象成为一个小系统。这样减少了和CDN对接的耦合性,同时增加MY_CDN的聚合性,就会减少MY_CDN的耦合性。

        本地系统和CDN如何交互?

        大体的过程如下所示

        (1)    XX系统传递给OnAir_CDN资源的实际地址和发布地址。

        (2)    OnAir_CDN传递给CDN的一个实际地址和发布地址。

        (3)    CDN根据OnAir_CDN的实际地址找到本地系统资源的位置,copy到自己的服务器上一份,再copy到不同地区的服务器一份,这样就实现了B地址和CDN分发资源的绑定。

        (4)    CDN分发成功后会返回给OnAir_CDN结果,OnAir_CDN会把是否分发成功的结果发送给本地系统。