关键技术:1、缓存算法;2、分发能力;3、负载均衡(全局负载均衡(GSLB,就近性)和本地负载均衡(SLB,节点内部的设备负载均衡));4、支持协议。
cache-control显示指令控制内容(控制是否缓存,怎样缓存);http gzip压缩;web缓存代理软件(squid);负载均衡软件(nginx);DNS服务器软件(BIND)。
A记录(Address):域名->多个IP的映射。对同一个域名,可以有多条A记录;
NS记录(name server):指定由哪台DNS服务器来解析;
SOA记录(start of authority):指定该区域的权威域名服务器;
CNAME记录(canonical name):多个域名->服务器的映射;
PTR记录(pointer record):IP->域名的映射。
比较项 |
基于DNS解析方式 |
基于HTTP重定向方式 |
基于IP路由方式 |
性能 |
本地DNS服务器和用户终端DNS缓存能力使GSLB的负载得到有效分担 |
GSLB处理压力大,容易成为系统性能的瓶颈 |
借助IP网络设备完成负载均衡,没有单点性能瓶颈 |
准确度 |
定位准确度取决于本地DNS覆盖范围,本地DNS设置错误会造成定位不准确 |
在对用户IP地址数据进行有效维护的前提下,定位准确且精度高 |
就近性调度准确,但对设备健康性等动态信息响应会有延迟 |
效率 |
效率约等于DNS系统本身处理效率 |
依靠服务器做处理,对硬件资源的要求高 |
效率约等于IP设备本身效率 |
扩展性 |
扩展性和通用性好 |
扩展性较差,需对各种应用协议进行定制开发 |
通用性好,但适用范围有限 |
商用性 |
在Web加速领域使用较多 |
国内流媒体CDN应用较多 |
尚无商用案例 |
流媒体CDN与Web CDN的对比(业务差异)
主要差异点 |
流媒体CDN |
Web CDN |
内容类型 |
大文件、实时流、QoS要求高 |
小文件、固定大小、QoS要求低 |
用户行为 |
拖曳、暂停等播放控制 |
下载后浏览 |
内容管理 |
内容冷热度差异明显(对命中率要求高),内容生命周期长 |
内容冷热度差异不明显,内容生命周期短 |
回源要求 |
回源比例小 |
回源比例大 |
现在已经投入商用的CDN系统,基本都是同时提供Web CDN能力和流媒体CDN能力的,而且这两种能力的实现在系统内部几乎都是互相隔离的,从调度系统到节点设备都没有交叉互用
流媒体CDN与Web CDN的设计差异(设计差异)
主要差异点 |
流媒体CDN |
Web CDN |
Cache |
支持多种流化协议,硬件配置大存储、高I/O |
支持多协议(HTTP、FTP等)硬件配置小存储、高性能CPU |
负载均衡 |
DNS+HTTP重定向方式 |
DNS方式 |
内容分发方式 |
热片PUSH,冷片PULL |
全PULL方式 |
组网 |
多级组网,可能要求组播、单播混合组网 |
两级组网 |
主要差异点 |
流媒体CDN |
Web CDN |
Cache |
支持多种流化协议,硬件配置大存储、高I/O |
支持多协议(HTTP、FTP等)硬件配置小存储、高性能CPU |
负载均衡 |
DNS+HTTP重定向方式 |
DNS方式 |
内容分发方式 |
热片PUSH,冷片PULL |
全PULL方式 |
组网 |
多级组网,可能要求组播、单播混合组网 |
两级组网 |
问题:当多个客户端同时请求同一内容时,如果CDN服务器没有缓存,需要pull,会进行合并请求吗?还是都重定向?(特别是对于流媒体或者大文件)