CDN(内容分发网络)

一、何为CDN?

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

       简单的说,内容分发网络是一个经策略性部署的整体系统,包括分布式存储、负载均衡、网络请求的重定向和内容管理4个要求,而内容管理和全局的网络流量管理是CDN的核心所在。通过用户就近性和服务器负载的判断,CDN确保内容以一种极为高效的方式为用户的请求提供服务。

      总的来说,内容服务基于缓存服务器,也称为代理缓存,它位于网络的边缘,距用户仅有“一跳”之遥。同时,代理缓存是内容提供商源服务器的一个透明镜像。这样的架构使得CDN服务提供商能够代表他们客户,即内容供应商,向最终用户提供尽可能好的体验,而这些用户是不能容忍请求响应时间有任何延迟的。

      一句话,CDN作为内容提供商的“影子”,在内容分发,负载均衡,内容管理,分布式存储领域发挥着不可忽视的作用。也许用户不能感知它的存在,但是它是用户能够快速访问资源的入口和导航,有时它还承担着老“司机”的作用。

   

二、浅谈CDN的技术原理

      2.1  反向代理

      CDN的基本原理为反向代理,反向代理作为当下十分流行的计算机网络相关技术,越来越受到大型互联网公司的青睐。是指以代理服务器来接受来自Internet的上面的请求,然后将请求转发给内部网络上的实际资源服务器,并将从服务器上返回的结果传递给Internet上请求练级的客户端,此时代理服务器对外就表现为一个节点服务器。通过部署更多的反向代理服务器,来达到实现多节点CDN的效果。

      既然我们谈到了反向代理,我有必要用一针见血的语言和完全核心的思想来解释下何为反向代理、何为正向代理以及它们之间的区别,便于我们此后章节论述的展开。

     我们平常的所用的代理服务,即为正向代理。举个简单的例子,你想使用goole搜索下国外的相关网页,亦或者你想逛逛youtube、facebook等只有通过我们俗称的“外网”才能够访问的内容。那么你必须使用相关的代理服务,但这种在网络上的代理服务大多良莠不齐、性能以及稳定性上相差很多。但基本原理都是通过一个代理服务器(可能在国外)来接受用户的请求,然后将此请求转发给真实的资源服务器,比如www.google.com。这就好比说,你问马云爸爸借钱,但他不认识你,所以他肯定不会借给你,但是你认识马爸爸的一个同学,他和你是好朋友的关系,所以你可以委托他向马爸爸借钱,你的“好朋友”就是代理服务器,也可以叫“托”,牵线搭桥的人。

     回到我们的主题,那么何为“反向代理”呢?难道马爸爸要向你借钱。。。完全不是(不要多想,哈哈),所谓“反向”,并不是指请求的方向颠倒了,而是指代理的主体对象颠倒了。这里可能有点绕,我们来仔细分析下:

     现在的情况是,因为你向马爸爸借钱成功了,导致其他人眼红,所以大家都前赴后继的找马云借钱,马云的电话一个接一个的,长此以往很烦人。所以马云公开表示了,所有找我借钱的童鞋,请打给我的秘书--王小峰,然后王小峰会把大家的具体请求跟我说的。OK,这样省事多了。这就是“反向代理”,也就是说,代理的主体对象由原来的“你”,变成了现在的“马老板”,王小峰就是完全为“马总”服务的代理服务器。

     下面来总结下两者的区别与联系。从相同点看,其实两者的结构都是在客户端与资源服务器端架设一个代理服务器,负责请求的接受和转发,以及内容的返回。从不同点来看,代理的主体对象完全相反,适用的场景和最终要解决的问题也完全不同:正向代理解决客户端直接访问的block,这个block可能来自各方面的原因,比如某某.avi网站为了躲过监察,在国外架设代理服务器,再比如你想观看too yong too simple的相关视频,就必须上“外网”。而反向代理要解决的问题是高并发量的请求连接所带来的网络延迟、拥挤、服务器瘫痪、难以合理分配资源等问题。

     回过头来,我们从技术架构的角度来讲,区别主要在于:

     正向代理中,客户端和代理服务器同属一个LAN,对资源服务器透明;

     反向代理中,资源服务器和代理服务器同属一个LAN,对客户端透明;

    

     2.2  CDN缓存

     缓存,顾名思义,就是保存一些常用的东西,这包括静态网页、图片、用户信息甚至是热点视频等。CDN缓存在大型分布式系统架构中发挥着不可忽视的作用,一言以蔽之,让资源对你”触手可及“。我们知道网络传输由于传输距离、运营商、带宽等问题往往会变的”举步维艰“,使得用户仅仅访问一张简单的html网页也会困难重重。所以从用户的角度来说,”抓到“一样东西,要么让你的手更长,要么让东西离你更近。CDN缓存选择的就是后一种方式,它将数据缓存到离用户更近的地方,一般缓存静态资源文件,包括页面、脚本、图片、视频、文件等。

     国内网络环境异常复杂,三大运营商之间的网络资源存在着”剪不断、理还乱“的关系,跨运营商的网络访问会很慢。再者,对于大型的互联网公司来说,它的用户访问可能来自五湖四海、世界各地,这也对各互联网公司网络设施的架构形成了不小的挑战。

     那么如何解决这些问题,使得用户就近获取想要的内容,降低网络阻塞,提高用户访问相应速度和命中率,正是CDN缓存的用武之地。

     CDN的基本原理是广泛采取各种缓存服务器,将这些缓存服务器分布到用户访问相对集中的地区或网络中,在用户访问网络时,利用全局负载技术将用户的访问指向距离最近的工作正常的缓存服务器上,由缓存服务器直接相应用户请求。

    

   2.3 CDN优缺点

    优点:

   1、本地Cache加速:提升访问速度,尤其含有大量图片和静态页面站点;

   2、镜像服务:消除了不同运营商之间互联的瓶颈造成的影响,实现了跨运营商的网络加速,保证了不同网络中的用户都能得到良好的访问质量;

   3、远程加速:远程访问用户根据DNS负载均衡技术智能自动选择Cache服务器,选择最快的Cache服务器,加快远程访问的速度;

   4、带宽优化:自动生成服务器的远程Mirror cache 服务器,远程用户访问时从cache服务器上读取数据,减少远程访问的带宽、分担网络流量、减轻原站点WEB服务器负载等功能;

   5、集群抗攻击:广泛分布的CDN节点加上节点之间的智能冗余机制,可以有效地预防黑客入侵以及降低各种DDoS攻击对网站的影响,同时保证较好的服务质量。

   缺点:

   1、动态资源缓存,需要注意实时性;

   2、如何保证数据的一致性和实时性需要权衡考虑;



    

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值