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

【百度百科解释】

  其基本思路是尽可能避开互联网上有可能影响数据传输速度和稳定性的瓶颈和环节,使内容传输的更快、更稳定。通过在网络各处放置节点服务器所构成的在现有的互联网基础之上的一层智能虚拟网络,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技术详解》一书,对于概念的东西有一定的了解了,但是对于实践,还有很长的路要走,或者说不太必要也不太有机会实践。理解、提升就好。
 

《CDN技术详解》 - CDN知多少?的更多相关文章

  1. CDN技术详解及实现原理

    CDN技术详解 一本好的入门书是带你进入陌生领域的明灯,<CDN技术详解>绝对是带你进入CDN行业的那盏最亮的明灯.因此,虽然只是纯粹的重点抄录,我也要把<CDN技术详解>的精 ...

  2. CDN技术详解笔记

    1.影响网络传输的四个因素(1)“第一公里”:网站服务器接入互联网的链路所能提供的带宽.(2)“最后一公里”:用户接入带宽.(3)对等互联关口:不同网络之间的互联互通带宽.(4)长途骨干传输:首先是长 ...

  3. CDN技术详解

    CDN,全称为Content DeliveryNetwork,中文意为"内容分发网络"".通过将网络内容发布到最靠近用户的『边缘节点』,使不同地区的用户在访问相同页面.图 ...

  4. CDN 技术详解(DNS,GSLB,Cache)

    CDN 是什么 CDN(Content Delivery Network,内容分发网络),即全网内容加速服务.为了尽可能的避开互联网上有可能影响数据传输速度和稳定性的瓶颈和环节,使内容传输的更快.更稳 ...

  5. CDN技术详解(七)

    动态内容加速服务的实现 随着Web2.0的兴起,产生了动态网页.个性化内容.电子交易数据等内容的加速,这些就涉及了动态内容加速技术. 静态内容的加速,都是对于表现层的加速,对于动态页面等内容的加速,则 ...

  6. CDN学习笔记二(技术详解)

    一本好的入门书是带你进入陌生领域的明灯,<CDN技术详解>绝对是带你进入CDN行业的那盏最亮的明灯.因此,虽然只是纯粹的重点抄录,我也要把<CDN技术详解>的精华放上网.公诸同 ...

  7. Zookeeper系列二:分布式架构详解、分布式技术详解、分布式事务

    一.分布式架构详解 1.分布式发展历程 1.1 单点集中式 特点:App.DB.FileServer都部署在一台机器上.并且访问请求量较少 1.2  应用服务和数据服务拆分  特点:App.DB.Fi ...

  8. Protocol Buffer技术详解(数据编码)

    Protocol Buffer技术详解(数据编码) 之前已经发了三篇有关Protocol Buffer的技术博客,其中第一篇介绍了Protocol Buffer的语言规范,而后两篇则分别基于C++和J ...

  9. P2P技术详解(二):P2P中的NAT穿越(打洞)方案详解

    1.内容概述 P2P即点对点通信,或称为对等联网,与传统的服务器客户端模式(如下图"P2P结构模型"所示)有着明显的区别,在即时通讯方案中应用广泛(比如IM应用中的实时音视频通信. ...

随机推荐

  1. Dojo框架学习笔记<二>

    一.dojo/dom    该模块定义了Dojo Dom API,主要有以下几种用法:    1.dom.byId();(相当于document.getElementById())    ①最直接的用 ...

  2. lvs DR模式下vip的端口无法telnet

    错误介绍: 在lvs配置文件中新添加一个vip  ,并添加一个virtual_server,添加两个realserver,配置文件都是复制,结果证明没问题,当时的效果是vip的端口telnet不了 过 ...

  3. Eclipse创建Android模拟器创建选项解释

  4. HTML5中的 Canvas

    什么是Canvas? Canvas元素是HTML5的一部分,允许脚本语言动态渲染位图像.Canvas由一个可绘制地区HTML代码中的属性定义决定高度和宽度.JavaScript代码可以访问该地区,通过 ...

  5. ios开发中经常用到的控件

    以下是按照使用频率对ios的控件进行罗列. 1.最常用的UI控件: UIButton (按钮).UILabel (文本标签).UITextField (文本输入框).UIImageView( 图片显示 ...

  6. nginx 配置rewrite 笔记

    nginx 配置rewrite笔记: 通过下面的示例来说明一下,1. 先说说location : location 表示匹配传入的url地址,其中配置符有多种,各种情况的意义不一样: location ...

  7. PHP路径常量和函数解释

    文件目录:

  8. Swap Swap,即交换分区

    Swap,即交换区,除了安装Linux的时候,有多少人关心过它呢?其实,Swap的调整对Linux服务器,特别是Web服务器的性能至关重要.通过调整Swap,有时可以越过系统性能瓶颈,节省系统升级费用 ...

  9. Linux环境下Oracle数据库启动停止命令

    切换root至oracle数据库账号 su – oracle 查看数据库服务状态: ps -ef |grep oracle netstat –an|grep 1521 查看数据库监听状态: [orac ...

  10. SSIS内存不足

    [SSIS.Pipeline] 信息: 缓冲区管理器检测到系统的虚拟内存不足,但无法换出任何缓冲区.考虑了 0 个缓冲区,锁定了 0 个缓冲区.或者是因未安装足够的内存或其他进程正在使用内存,以致于没 ...