CDN架构设计及注意事项
内容传输网络或内容分发网络(CDN)是一个包含数据副本的缓存系统,存在于网络中不同的节点以便可以最大化的利用网络来传输数据至客户端。一个客户端访问离它最近节点的数据副本,而不是所有的客户端访问相同的中心服务器,因此避免了服务器瓶颈问题。CDN所缓存的内容类型包括web对象、可下载的对象(媒体文件、软件、文档)、应用程序和实时媒体流。从最高层面来看,所有的CDN看起来都相似,都拥有一个类似于图(1)所示的高级模型。
图(1)
图(1)名词释义:
CONTENT DELIVERY NETWORK : CDN系统
Publisher : 通过网络服务给用户提供数据的数据提供者
Authorize : Publisher给网络分配传递特定数据的权限
Report : Publisher请求网络服务的统计数据
Origin : Publisher向网络提供一份原始的数据副本
Data : Publisher为分布在不同地区的用户创建或许可用户访问的数字信息片段
Request : Publisher直接将用户重定向至通过网络请求所需要数据
Deliver : 通过网络为用户提供数据/内容
Subscriber: 使用Publisher数据/内容的用户
CDN联网设计要求与互联网web缓存服务有以下几点不同之处:
-
有效性 --- 在服务软件更新或基础架构扩展时,系统架构没有单点故障
-
操作 --- 由于数据传输的质量和速度取决于CDN服务器和用户之间的距离,所以传输缓存(CDN)应该分布在离终端用户非常近的地方
-
性能 --- 高清视频需要持续性的高吞吐量和低延迟
-
弹性 --- 缓解网络堵塞以及恢复下载中断的能力
-
安全性 --- 通过完整性和安全性措施来保护数字版权,防止盗版
-
效率 --- 基于动态指令以及内容受欢迎程度的智能复制
以上这些原则基本上是设计一个CDN架构主要要考虑的事情。
1. 本文由mathew翻译,程序员学架构校审
2. 本文译自http://www.velocix.com文章cdn-architecture
3. 转载请务必注明本文出自:程序员学架构(微信号:archleaner )
4. 更多文章请扫码:
已有 0 人发表留言,猛击->> 这里<<-参与讨论
ITeye推荐