淘宝图片存储与CDN系统[转]

转载一个PPT,演讲者是淘宝核心系统研发部负责人,LVS开发者,淘宝开源平台的推动者, 章文嵩(@wensong)博士。另据不可靠消息,PPT中提到的海量图片存储系统TFS,将于9月份在淘蝌蚪上开源。

什么是CDN

CDN(Content Delivery Network)内容分发网络,简单的说就是通过在不同地点缓存内容,然后通过负载平衡等技术将用户请求定向到最近的缓存服务器上获取内容,提高用户访问网站的响应速度。和简单的内容镜像不同,CDN通过用户就近性和服务器负载的判断,以一种更为高效的方式为用户的请求提供服务。

CDN包括分布式存储负载均衡网络请求的重定向内容管理,其中内容管理和全局的网络流量管理(Traffic Management)是CDN的核心所在。内容服务基于缓存服务器,也称作代理缓存(Surrogate),这样的缓存服务器分布在各地,为就近用户提供服务,缓存内容从数据中心自动获取,对用户透明。据说采用CDN技术能处理整个网站页面的 70%~95%的内容访问量,对于一些大型网站来说,没有CDN,单靠数据中心支撑所有访问量是不可想象的。

CDN中的关键技术包含以下几个方面;

  • 内容发布:借助于建立索引、缓存、流分裂、组播(Multicast)等技术,将内容发布或投递到距离用户最近的远程服务点(POP)处;
  • 内容路由:整体性的网络负载均衡技术,通过内容路由器中的重定向(DNS)机制,在多个远程POP上均衡用户的请求,以使用户请求得到最近内容源的响应;
  • 内容交换:根据内容的可用性、服务器的可用性以及用户的背景,在POP的缓存服务器上,利用应用层交换、流分裂、重定向(ICP、WCCP)等技术,智能地平衡负载流量;
  • 性能管理:通过内部和外部监控系统,获取网络部件的状况信息,测量内容发布的端到端性能(如包丢失、延时、平均带宽、启动时间、帧速率等),保证网络处于最佳的运行状态。

部署CDN后,用户访问网站的流程如下图:
CDN

  1. 用户请求页面,域名解析的请求发送到网站的DNS域名解析服务器;
  2. 网站的DNS服务器将请求指向到智能DNS负载均衡系统;
  3. 智能DNS负载均衡系统对域名进行智能解析,将响应速度最快的CDN节点IP返回给用户;
  4. 浏览器向速度最快的CDN节点发出访问请求;
  5. 如果请求的内容是第一次访问,CDN节点将回到数据中心获取用户请求的数据,缓存并发给用户;
  6. 当有其他用户再次访问同样内容时,CDN将直接将缓存数据返回给客户,完成请求/服务过程。

从以上流程可以看到,CDN其实也没有什么特别的,主要是通过负载均衡访问路由转向本地代理缓存来加速网站访问,同时对于用户访问来说是透明的,用户端无须进行任何设置。

对于CDN一无所知,从网上找了点资料,主要内容参考的这里

无觅相关文章插件,快速提升流量