到底什么是CDN?( 二 )


到底什么是CDN?


因为这项技术是把内容进行了分发,所以,它的名字就叫做CDN——Content Delivery Network,内容分发网络 。
具体来说,CDN就是采用更多的缓存服务器(CDN边缘节点),布放在用户访问相对集中的地区或网络中 。当用户访问网站时,利用全局负载技术,将用户的访问指向距离最近的缓存服务器上,由缓存服务器响应用户请求 。(有点像电商的本地仓吧?)
大家可能觉得,这个不就是“镜像服务器”嘛?其实不一样 。镜像服务器是源内容服务器的完整复制 。而CDN,是部分内容的缓存,智能程度更高 。
确切地说,CDN=更智能的镜像+缓存+流量导流 。
而且还需要注意的是,CDN并不是只能缓存视频内容,它还可以对网站的静态资源(例如各类型图片、html、css、js等)进行分发,对移动应用APP的静态内容(例如安装包apk文件、APP内的图片视频等)进行分发 。
我们来举个例子,看看CDN的具体工作流程 。
如果某个用户想要访问优酷的视频点播内容,那么:
到底什么是CDN?


具体步骤:
①、当用户点击APP上的内容,APP会根据URL地址去本地DNS(域名解析系统)寻求IP地址解析 。
②、本地DNS系统会将域名的解析权交给CDN专用DNS服务器 。
③、CDN专用DNS服务器,将CDN的全局负载均衡设备IP地址返回用户 。
④、用户向CDN的负载均衡设备发起内容URL访问请求 。
⑤、CDN负载均衡设备根据用户IP地址,以及用户请求的内容URL,选择一台用户所属区域的缓存服务器 。
⑥、负载均衡设备告诉用户这台缓存服务器的IP地址,让用户向所选择的缓存服务器发起请求 。
⑦、用户向缓存服务器发起请求,缓存服务器响应用户请求,将用户所需内容传送到用户终端 。
⑧、如果这台缓存服务器上并没有用户想要的内容,那么这台缓存服务器就要网站的源服务器请求内容 。
⑨、源服务器返回内容给缓存服务器,缓存服务器发给用户,并根据用户自定义的缓存策略,判断要不要把内容缓存到缓存服务器上 。
▊ CDN的好处
采用CDN技术,最大的好处,就是加速了内容的访问——用户与内容之间的物理距离缩短,用户的等待时间也得以缩短 。
而且,分发至不同线路的缓存服务器,也让跨运营商之间的访问得以加速 。
例如中国移动手机用户访问中国电信网络的内容源,可以通过在中国移动架设CDN服务器,进行加速 。效果是非常明显的 。
此外,CDN还有安全方面的好处 。内容进行分发后,源服务器的IP被隐藏,受到攻击的概率会大幅下降 。而且,当某个服务器故障时,系统会调用临近的健康服务器 进行服务,避免对用户造成影响 。
正因为CDN的好处很多,所以,目前所有主流的互联网服务提供商,都采用了CDN技术 。所有的云服务提供商,也都提供了CDN服务(价格也不算贵,按流量计费) 。
到底什么是CDN?


某某云的CDN服务
▊ CDN的弱点CDN虽然有很多的优点,但它并不是万能的 。在部分场景下,CDN并不是适用 。首先,CDN适用于静态的内容,不适用动态的内容 。用户动态的实时交互数据,是难以缓存的 。例如一些频繁修改的数据库表单内容等 。(大家可能没想到,直播其实也是可以使用CDN的 。感兴趣的同学可以搜一下“直播CDN” 。)其次,很多应用提供商和内容服务商,为了保护自身的数据私密,不允许第三方公司CDN缓存他们的数据,只允许自家CDN缓存自家的数据 。这个对用户体验会造成一定影响 。第三,建设CDN意味着不菲的资金投入 。不管是自己买服务器搭建CDN,还是租用云服务提供商的CDN服务,都需要花钱 。而且,区域越多,花的钱越多 。这些CDN到底有没有人用,利用率是多少,很难精准预测 。也许大部分时间里,利用率很低,就造成了资源浪费 。▊ CDN和通信

推荐阅读