一、概述
背景:
当下的互联网应用都包含大量的静态内容,但静态内容以及一些准动态内容又是最耗费带宽的,特别是针对全国甚至全世界的大型网站,如果这些请求都指向主站的服务器的话,不仅是主站服务器受不了,单端口500M左右的带宽也扛不住,所以大多数网站都需要CDN服务。
CDN,Content Delivery Network:基于内容的分布式分发网络。 简单的说CDN就是让原本上海的浏览器要访问北京主站内容的请求转而由部署在上海或南京的缓存来受理,这样请求的数据只需经过一跳或有限的几跳就能到达请求端,有效利用带宽并且降低主站压力,对于电子商务网站和搜索引擎网站以及门户网站,CDN的合理应用显得尤为重要。
一般需要CDN服务的网站会选择以下的组织方案:
- 通过租用的IDC提供额外的CDN服务;
- 购买专业的CDN服务商的服务;
- 自己组建CDN网络;
成本依次增高。
CDN设计目的是实现WEB内容的负载均衡,防止出现访问请求热点,延时响应等WEB请求通病。基于此,CDN的特点可以说有:
- 分布式存储
- 通过智能 DNS解析 或 http重定 向实现内容分发的负载均衡
- 全局负载均衡管理与内容管理
二、原理
2.1 网络结构
CDN网络一般分为中心与边缘节点两部分,中心负责全局负载均衡
与内容管理
。中心节点的功能如下:
- 随时监控边缘节点的健康状况(可用性,拥塞程度);
- 根据边缘节点到请求端的距离,以及边缘节点的健康状况,按一定的策略重定向请求;
- 与客户主站进行数据同步。
负责为用户提供内容服务的cache设备应部署在物理上的网络边缘位置,即CDN边缘层。CDN系统中负责全局性管理和控制的设备组成中心层(二级缓存),中心层同时保存着最多的内容副本,当边缘层设备未命中时,会向中心层请求,如果在中心层仍未命中,则需要中心层向源站 回源。(如果是流媒体,代价很大)
CDN**骨干点和CDN **POP点在功能上不同,中心和区域节点一般称为骨干点,主要作为内容分发和边缘未命中时的服务点;边缘节点又被称为POP(point of presence)
节点,CDN POP点主要作为直接向用户提供服务的节点。
2.2 CDN的效果
传统的未加缓存服务的访问过程:
- 用户向浏览器提供要访问的域名;
- 浏览器调用域名解析函数库对域名进行解析,以