一、CDN定义

CDN的全称是Content Delivery Network,即内容分发网络。其基本思路是尽可能避开互联网上有可能影响数据传输速度和稳定性的瓶颈和环节,使内容传输的更快、更稳定。通过在网络各处放置节点服务器所构成的在现有的互联网基础之上的一层智能虚拟网络,CDN系统能够实时地根据网络流量和各节点的连接、负载状况以及到用户的距离和响应时间等综合信息将用户的请求重新导向离用户最近的服务节点上。其目的是使用户可就近取得所需内容,解决 Internet网络拥挤的状况,提高用户访问网站的响应速度。
 
二、简介
CDN是构建在网络之上的内容分发网络,依靠部署在各地的边缘服务器,通过中心平台的负载均衡、内容分发、调度等功能模块,使用户就近获取所需内容,降低网络拥塞,提高用户访问响应速度和命中率。CDN的关键技术主要有内容存储和分发技术。
CDN的基本原理是广泛采用各种缓存服务器,将这些缓存服务器分布到用户访问相对集中的地区或网络中,在用户访问网站时,利用全局负载技术将用户的访问指向距离最近的工作正常的缓存服务器上,由缓存服务器直接响应用户请求。
 
以上是来自百度对于CDN比较官方的解释,百度对CDN解释的比较详细,但是很多专有名词,对于不太了解的人来说可能不太理解。PS:自己之前对CDN的理解也是云里雾里的。
 
由于工作的原因,部门的项目比较多而且比较杂。大多数部门负责的项目都用了CDN,一些测试用的站点就没有加CDN。从几个月的工作经验来看,测试站不加CDN一方面是节省资源和费用,另外是便于开发人员更快更及时的看到更新。
 
在工作中,感觉CDN是一个比较神奇的东西。刚刚进入公司的时候,leader跟我解释过CDN,自己也查过相应的资料,但是自己对于CDN的理解一直停留在这是一种清除缓存,为用户看到更新加速的一种手段。这种想法一直到前不久,一个重要的项目上线,但是同事由于没有单推更新图片的CDN,导致部分用户看到了还不能泄露的重要信息,这件事在部门的影响很大。
 
在自己之前的工作中,有时候更新的文件太多,就直接推送了整个文件目录。这次事故,让我们留下了深刻印象,以后对于比较重要的信息,一定要单独推更新的文件。
 
不过有时候CDN也有很多因素影响,具我目前的体会来看,其中有几个问题:
1.根据使用的CDN服务提供者不同,CDN响应的程度不同;
用过5,6个CDN加速服务,就现在体验来看,国内腾讯云和网宿是比较好的供应商,响应比较快。
2.网络节点也会有缓存。
之前一直认为,CDN缓存因为地域不同,响应时间会有差异。但是在工作过程中,发现会因为网络节点有缓存,也会导致更新没有出现。比如:工作大厦的网络节点缓存,有时候也会导致更新不能及时出现。
 
我理解的CDN:
举例来说,A和B相距20米,A,B能够互相看清对方的脸;当A,B相距100米甚至更远时,A,B互相看到对方会随着距离增加而越来越模糊。对于网站来说,如果访问的用户离网站所在服务器越远访问速度和缓存都有相应的影响。而且访问量过大时,服务器也有很大的压力,甚至会宕机。
对于CDN,相当于在提供CDN服务的供应商在很多地域都放了一面镜子,镜子照的是A,不同地域的B看到的都是镜子反射A。CDN便是这样,用户看到的是当地CDN虚拟服务器上的网站。如果服务器有更新,就需要推送CDN,更新每面镜子。
 
CDN说好理解也好理解,说难懂也难懂。对于官方的解释,对于知识积累较少的人来说还是不太容易懂,不过在使用的过程中就会越来越明白。

谈谈我从工作中理解的CDN的更多相关文章

  1. 谈谈我对Java中CallBack的理解

    谈谈我对Java中CallBack的理解 http://www.cnblogs.com/codingmyworld/archive/2011/07/22/2113514.html CallBack是回 ...

  2. 谈谈如何在面试中发掘程序猿的核心竞争力zz

    早两天看了知乎日报的这篇文章<什么是程序员的核心竞争力?>,caoz讲的几点是让我感同身受.这让我联想起了给程序猿的面试,其实也就是通过短暂的接触来发掘程序猿的核心竞争力.接下来我就谈谈我 ...

  3. [转]谈谈关于MVP模式中V-P交互问题

    在差不多两年的时间内,我们项目组几十来号人都扑在一个项目上面.这是一个基于微软SCSF(Smart Client Software Factory)的项目,客户端是墨尔本一家事业单位.前两周,我奉命负 ...

  4. ES6在工作中会用到的核心知识点讲解

    一.var, let, const 谈到ES6,估计大家首先肯定会想到var,let,const 咱就先谈谈这三者的区别 var a = 3; { var a = 4; } console.log(a ...

  5. 【面试普通人VS高手系列】谈谈你对AQS的理解

    AQS是AbstractQueuedSynchronizer的简称,是并发编程中比较核心的组件. 在很多大厂的面试中,面试官对于并发编程的考核要求相对较高,简单来说,如果你不懂并发编程,那么你很难通过 ...

  6. 【Java面试】面试遇到宽泛的问题,这么回答就稳了,谈谈你对Redis的理解

    "谈谈你对Redis的理解"! 面试的时候遇到这类比较宽泛的问题,是不是很抓狂? 是不是不知道从何开始说起? 没关系,今天我用3分钟教你怎么回答. 大家好,我是Mic,一个工作了1 ...

  7. [工作中的设计模式]解释器模式模式Interpreter

    一.模式解析 解释器模式是类的行为模式.给定一个语言之后,解释器模式可以定义出其文法的一种表示,并同时提供一个解释器.客户端可以使用这个解释器来解释这个语言中的句子. 以上是解释器模式的类图,事实上我 ...

  8. Javascript中理解发布--订阅模式

    Javascript中理解发布--订阅模式 阅读目录 发布订阅模式介绍 如何实现发布--订阅模式? 发布---订阅模式的代码封装 如何取消订阅事件? 全局--发布订阅对象代码封装 理解模块间通信 回到 ...

  9. 访何红辉:谈谈Android源码中的设计模式

    最近Android 6.0版本的源代码开放下载,刚好分析Android源码的技术书籍<Android源码设计模式解析与实战>上市,我们邀请到它的作者何红辉,来谈谈Android源码中的设计 ...

随机推荐

  1. ARC初步介绍

    [转载自 http://onevcat.com/2012/06/arc-hand-by-hand/] 手把手教你ARC——iOS/Mac开发ARC入门和使用 Revolution of Objecti ...

  2. (USB HID) VC++ 使用 SetupAPI 操作 USB HID Device

    在VC裡頭使用 Api必須include 跟加入 lib,加入之後就可以在VC裡頭任意使用api了 暫時先貼上程式碼...等待有空時候在更新說明 extern "C" { #inc ...

  3. Linux新手随手笔记1.9-使用Apache搭建网站

    搭建网站 网站服务:让用户能够通过浏览器访问到的服务器上的文档资源. 对比Windows 和Linux部署服务方法对比 Windows:IIS Linux      :Apache ,nginx Ap ...

  4. Vue 1-- ES6 快速入门、vue的基本语法、vue应用示例,vue基础语法

    一.ES6快速入门 let和const let ES6新增了let命令,用于声明变量.其用法类似var,但是声明的变量只在let命令所在的代码块内有效. { let x = 10; var y = 2 ...

  5. 安装vs2013要求重启后安装

    解决方案: 卸载360,然后杀毒, 重启电脑就可以直接安装vs了

  6. C# checked和unchecked运算符

    1.作用 checked和unchecked运算符用于CLR(公共语言运行时)强制对它们所作用的代码块,进行(不进行)代码溢出检测 2.示例说明 有代码如下: static void Main(str ...

  7. Jmeter测试计划中的元素

    测试计划中的元素(elements of a test plan) 本节描述测试计划不同的部分. 最小测试将包括测试计划.线程组和一个或多个采样器. 1 测试计划(Test Plan) 测试计划对象有 ...

  8. Selenium+excel实现参数化自动化测试

    使用到的技术:POI对excel的解析.selenium自动化测试.junit 测试用例:登陆www.1905.com执行登陆-退出的操作 执行步骤: 1.首先创建一个excel,里面有用户名和密码列 ...

  9. 关于echar彩色柱状图颜色配置问题

    在做配置页面的时候,有这样一个需求,用户可以选择配置是单色柱状图或者彩色的柱状图,并且颜色可以自定义的 思路:首先默认构建一个一个空的图表,然后根据记录上一次操作保存过来的参数重新组建option的值 ...

  10. Clojure编写一个阶乘程序 使用递归

    这是递归 (def f     (fn fb     [x]    (if (< x 2)      1      (* x (fb (- x 1)) )     )        )  ) ( ...