CDN机制是指内容文件在CDN内部从中心节点到各个区域、边缘节点的分发。这一过程的实现方式分为PULL和PUSH两种。
CDN机制是一种被动的下拉方式,通常由用户请求驱动。当用户请求的内容在边缘Cache上未命中时,边缘Cache启动PULL方法从内容源或者其他Cache实时获取内容。边缘Cache需要支持边拉边放,即一边从其他位置获取内容,一边将内容流化后提供给用户。在PULL方式下,内容的分发是按需的,更多相关知识:http://www.zhengdaole.com/。
CDN机制是一种主动推送的方式,通常是由内容管理系统发起的,将内容从源或者中心媒体资源库分发到各边缘的Cache节点。分发的协议可以采用HTTP/FTP等。通过PUSH分发的内容一般是访问热度高的内容,这些内容通过PUSH方式预推到边缘Cache,可以迅速响应用户访问请求。对于PUSH分发需要考虑的主要问题是分发策略,即在什么时候分发什么内容。一般来说,内容分发策略可以由CDN的使用者或者CDN管理员人工确定,也可以通过智能策略决定,即所谓的智能分发。它根据用户访问的统计信息,以及预定义的内容分发的规则,确定内容分发的过程,如果开展IDC业务,需要了解数据中心机房。
在实际的CDN机制系统中,一般两种分发方式都支持,但是根据内容的类型和业务模式的不同,在选择主要的内容分发方式时会有所不同。通常,PUSH方式适合内容访问比较集中的情况,如热点的影视流媒体内容,PULL 方式比较适合内容访问分散的情况。
有的CDN系统实现PUSH方式是主动模拟一个客户请求,使系统产生PULL响应。也就是说,PULL方式和PUSH方式在技术实现上是没有什么差别的,只是触发方不同而已。这种差异性读者能够理解即可,本书不再深入讨论。
我们已经了解到,对使用CDN服务的SP来说,CDN的作用在于尽量就近为用户提供服务,帮助SP解决长距离IP传输和跨域传输带来的种种业务质量问题。因此,为用户提供服务的Cache设备一定部署在离用户比较近的地方。另一方面,CDN的建设者从成本角度考虑,又不能把所有内容都存放在这些离用户最近的节点中,这会消耗大量存储成本,所以这些提供服务的CDN机制设备会根据需要从源站服务器或者其他Cache获取内容。这样就形成了CDN网络分层部署的概念。
从网络分层上看,CDN机制通常是两级架构,即中心-边缘。而流媒体CDN通常有三级以上架构,即中心-区域-边缘。产生这种区别的原因在于流媒体回源成本比较高,源站服务器响应一次流媒体内容回源请求,要比Web内容回源消耗更多资源。尤其对于流媒体直播业务来说,只要直播节目没结束,服务器就需要长时间持续吐流,如果没有第二层节点作为中继,那么中心节点的压力将是不可想象的。