CDN对于动态加速是否有效

CDN对于动态加速是否有效的问题。关于这个问题,一直存在一些分歧,部分人认为有效,部分人认为无效,主要是CDN技术也在更新,而且是比较低调的进行着更新,所以并不是所有人都清楚CDN对动态加速的效果。其实如果真的追究到第一代的CDN技术,那确实是不支持动态加速的,因为数据库这种实时更新而且随时都在更新的东西实在是没办法把它缓存到镜像服务器上,比较专业的数据库例如MSSQL倒是提供了热备的异地同步功能,不过实现起来相当复杂,而且使用简易型数据库的用户不在少数,所以缓存技术拿数据库没辙,一般在处理碰到动态页面的时候就把URL直接引回主站,所以加速了跟没加速一个效果,有时因为URL解析产生的延迟等问题反而还比不加速的情况下要慢;还有一种处理动态页面的方法,不记得是哪个CDN运营商提出的了,其实就是把动态页面生成静态后再利用静态缓存分发的技术实现加速,不过这个生成静态的操作是手动的,也就是由用户来确认生成哪些静态页面,然后点击一个生成的按钮,就开始进行该操作,而其实还有一些资料提出的CDN加速原理是有点类似IIS加速ASP.NET那样,也就是把每个被访问过的动态页面都自动生成一个静态页然后分发出去,这样下次再有人访问这个动态页面时就会先检查该页面之前是否被访问过,如果被访问过就引到镜像站点,否则就先由主站生成一个页面,再分发到镜像服务器上,当然这种方式存在不少需要解决的问题,例如当主站的某个静态页已经生成静态了,然后主站又产生了一些新的数据,使得这个页面内容已经产生变化,那么镜像服务器上的静态数据如何与主站保持这种高度的实时同步?老实说这个问题非常难解决,于是,部分有实力也就是指有大量带宽的运营商开始采用带宽加速的方式实现动态的CDN加速。这个原理是怎么样的呢?简单来说就类似用镜像服务器给访问者做了一个高速的代理服务器,用过代理服务器的朋友应该知道,假如XX用户通过代理访问A站点的某个动态页面,那么代理服务器会先自己去访问A站点的这个动态页面,然后把A站点返回的内容再转发给XX用户,这样不管A站点的数据如何更新,XX用户每次访问那个动态页面都会从代理服务器得到最新的内容,当然,条件就是代理服务器连接A站点的速度跟连接用户的速度都非常快,这样才会有加速的效果,所以需要代理服务器有非常好的带宽,这样的话,一般的服务商是做不来的,所以大家知道为什么很多CDN服务商对动态内容的加速效果不好了吧,其实就是实力有限,带宽不足。


最后,还有一个问题是大家经常忽略的,就是CDN的几种作用。很多人都知道CDN是用来给各地访问者加速或者说南北互通,但其实CDN都还有一个很重要的作用就是分流减负。试想,一台服务器能够承受多大的访问量,能够支撑多大的带宽,这些都是非常有限的,而通过CDN系统将这台服务器上面的内容分发到各个节点之后,这些节点其实就为主站服务器承担了来自当地的访问量,主站的负荷几乎都转移到了各地的镜像节点上,从而大大提高了网站的负载能力;这样一来,CDN其实都还起到了防御DDOS的作用,一些针对域名发起的DDOS流量攻击其实就被转移到了镜像节点上面,而镜像节点的负载能力自然是比较强的,大部分情况下都可以完全吸收DDOS攻击的压力,使得攻击者无功而返。

原文地址:http://idc.cnw.com.cn/CDN/htm2008/20080506_53576.shtml

posted on 2014-01-13 11:52  davidkam  阅读(4686)  评论(0编辑  收藏  举报