《CDN技术详解》 - CDN知多少?

  开发时间久了,就会接触到性能和并发方面的问题,若是说,在本身仍是菜鸟的时候彻底不用理会这种问题或者说有其余的高手去处理这类问题,那么,随着经验的丰富起来,本身必需要独立去处理了。或者,知道思路也行,毕竟当下,分工如此精细,你也不太可能啥都干!
  面对高性能高并发的应用场景,在开发者的层面能够作不少,如使用优化的代码,优化的sql,读写分离,nosql缓存,页面静态化等等。可是代码毕竟不能作全部的事,服务器集群,CDN则是更高级的手段。CDN到底如何工做的呢,让咱们来大概了解一下!
  CDN的基础百科资料也不少了,我也稍等提一下。CDN,Content Distribute Network,即内容颁发网络。sql

【百度百科解释】apache

  其基本思路是尽量避开互联网上有可能影响数据传输速度和稳定性的瓶颈和环节,使内容传输的更快、更稳定。经过在网络各处放置节点服务器所构成的在现有的互联网基础之上的一层智能虚拟网络,CDN系统可以实时地根据网络流量和各节点的链接、负载情况以及到用户的距离和响应时间等综合信息将用户的请求从新导向离用户最近的服务节点上。其目的是使用户可就近取得所需内容,解决 Internet网络拥挤的情况,提升用户访问网站的响应速度。
  转化一下我别扭的理解就是,CDN是CDN服务商在全国各地部署许多服务器集群,经过某种协议拦截用户访问,为用户提供就近服务,从而提升服务能力,减轻源站压力,减轻国家主干网压力的一种手段。
浏览器

【拦截用户访问的方式】缓存

  基于DNS解析的拦截!提供网络边缘服务。服务器

  1)、用户向浏览器提供要访问的域名;
  2)、浏览器调用域名解析库对域名进行解析,因为CDN对域名解析过程进行了调整,因此解析函数库通常获得的是该域名对应的CNAME记录,为了获得实际IP地址,浏览器须要再次对得到的CNAME域名进行解析以获得实际的IP地址;在此过程当中,使用的全局负载均衡DNS解析,如根据地理位置信息解析对应的IP地址,使得用户能就近访问。
  3)、这次解析获得CDN缓存服务器的IP地址,浏览器在获得实际的IP地址之后,向缓存服务器发出访问请求;
  4)、缓存服务器根据浏览器提供的要访问的域名,经过Cache内部专用DNS解析获得此域名的实际IP地址,再由缓存服务器向此实际IP地址提交访问请求;
  5)、缓存服务器从实际IP地址得获得内容之后,一方面在本地进行保存,以备之后使用,另外一方面把获取的数据返回给客户端,完成数据服务过程;
  6)、客户端获得由缓存服务器返回的数据之后显示出来并完成整个浏览的数据请求过程。
【CDN负载均衡集群】
  集群分三种:计算集群、负载均衡集群、高可用集群。
  负载均衡集群(GSLB)就是,将多台彼此互联的服务器共同分担计算任务,将负载尽量平均的分配到各台服务器上进行处理,从而提升处理能力!
  CND缓存服务器核心思想:在用户和内容服务器之间架构缓存服务器,将用户最近访问过的媒体数据缓存在离用户较近的地方,以供后续重复访问使用,部署集群充分利用各节点造成的强大计算能力。
【负载均衡原理分类】
  按照协议分类能够分为:四层负载均衡(L4)、七层负载均衡(L7)。四层如:LVS,七层如:Nginx。
【GSLB全局负载均衡的实现方式】
  基于DNS的解析方式,使用较多。
  基于HTTP重定向方式的实现方式,流媒体使用较多。
  基于IP路由方式,使用范围有限,暂无商用!
【流媒体相关的几个协议】
  RTP(Realtime Transport Protocol)实时传输协议、RTCP(Realtime Transport Control Protocol)实时传输控制协议。
  RTMP(Real Time Messaging Protocol)实时消息传送协议。
  HTTP Streaming,Progressive Download 渐近式下载的发展结果,目前最普遍的流化协议。
【防盗链机制实现】
  利用HTTP Referer字段。
  利用登陆验证。
  利用cookie携带验证信息。
  使用POST下载。
  使用图形验证码。
  使用动态密钥。
  在内容中插入数据。
  打包下载,使用哈希码验证。
【SSL加速】
  SSL加速板卡。
  SSL加速设备。
  
【自行搭建CDN试验工具】
  安装KVM。
  安装apache httpd。
  安装squid代理缓存服务器。
  安装LVS负载均衡服务器。
  安装BIND域名服务器。
  安装Nginx负载均衡服务器。
  
  以上内容,来自《CDN技术详解》一书,对于概念的东西有必定的了解了,可是对于实践,还有很长的路要走,或者说不太必要也不太有机会实践。理解、提高就好。