CDN
Content Delivery Network,基于内容的分布式分发网络。
那么什么是CDN服务?
简单的说CDN就是让原本上海的浏览器要访问北京主站内容的请求转而由部署在上海或南京的缓存来受理,这样请求的数据只需经过一跳或有限的几跳就能到达请求端,有效利用带宽并且降低主站压力,对于电子商务网站和搜索引擎网站以及门户网站,CDN的合理应用显得尤为重要。
CDN系统能够实时地根据网络流量和各节点的连接、负载状况以及到用户的距离和响应时间等综合信息将用户的请求重新导向离用户最近的服务节点上。其目的是使用户可就近取得所需内容,解决 Internet网络拥挤的状况,提高用户访问网站的响应速度。
一般需要CDN服务的网站会选择以下的组织方案:
1.通过租用的IDC提供额外的CDN服务;
2.购买专业的CDN服务商的服务;
3.自己组建CDN网络;成本依次增高。
CDN设计目的是实现WEB内容的负载均衡,防止出现访问请求热点,延时响应等WEB请求通病。基于此,CDN的特点
- 分布式存储
- 通过智能DNS解析或http重定向实现内容分发的负载均衡
- 全局负载均衡管理与内容管理
CDN网络一般分为中心与边缘节点两部分,中心负责全局负载均衡管理与内容管理;
中心节点的功能如下:
- 随时监控边缘节点的健康状况(可用性,拥塞程度);
- 根据边缘节点到请求端的距离,以及边缘节点的健康状况,按一定的策略重定向请求;
- 与客户主站进行数据同步。
CDN工作原理
传统的未加缓存服务的访问过程:
- 用户向浏览器提供要访问的域名;
- 浏览器调用域名解析函数库对域名进行解析,以得到此域名对应的IP地址;
- 浏览器使用所得到的IP地址,域名的服务主机发出数据访问请求;
- 浏览器根据域名主机返回的数据显示网页的内容。
使用CDN缓存后的网站的过程:
- 用户向浏览器提供要访问的域名;
- 浏览器调用域名解析库对域名进行解析,由于CDN对域名解析过程进行了调整,所以解析函数库一般得到的是该域名对应的CNAME记录,为了得到实 际IP地址,浏览器需要再次对获得的CNAME域名进行解析以得到实际的IP地址;在此过程中,使用的全局负载均衡DNS解析,如根据地理位置信息解析对应的IP地址,使得用户能就近访问。
- 此次解析得到CDN缓存服务器的IP地址,浏览器在得到实际的IP地址以后,向缓存服务器发出访问请求;
- 缓存服务器根据浏览器提供的要访问的域名,通过Cache内部专用DNS解析得到此域名的实际IP地址,再由缓存服务器向此实际IP地址提交访问请求;
- 缓存服务器从实际IP地址得得到内容以后,一方面在本地进行保存,以备以后使用,二方面把获取的数据返回给客户端,完成数据服务过程。
关键技术
- 内容发布:它借助于建立索引、缓存、流分裂、组播(Multicast)等技术,将内容发布或投递到距离用户最近的远程服务点(POP)处;
- 内容路由:它是整体性的网络负载均衡技术,通过内容路由器中的重定向(DNS)机制,在多个远程POP上均衡用户的请求,以使用户请求得到最近内容源的响应;
- 内容交换:它根据内容的可用性、服务器的可用性以及用户的背景,在POP的缓存服务器上,利用应用层交换、流分裂、重定向(ICP、WCCP)等技术,智能地平衡负载流量;
- 性能管理:它通过内部和外部监控系统,获取网络部件的状况信息,测量内容发布的端到端性能(如包丢失、延时、平均带宽、启动时间、帧速率等),保证网络处于最佳的运行状态。