一、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. php 扩展 debug问题

    php安装时为debug模式 ./configure  --prefix=/usr/local/php7.1.6-debug --with-curl --with-pcre-regex --enabl ...

  2. python3的enumerate函数

    enumerate() 函数用于将一个可遍历的数据对象(如列表.元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中.

  3. 吃奶酪 状压dp

    题目描述 房间里放着n块奶酪.一只小老鼠要把它们都吃掉,问至少要跑多少距离?老鼠一开始在(0,0)点处. 输入输出格式 输入格式: 第一行一个数n (n<=15) 接下来每行2个实数,表示第i块 ...

  4. UVALive - 6436、HYSBZ - 2435 (dfs)

    这两道题都是用简单dfs解的,主要是熟悉回溯过程就能做,据说用bfs也能做 道路修建(HYSBZ - 2435) 在 W 星球上有n 个国家.为了各自国家的经济发展,他们决定在各个国家 之间建设双向道 ...

  5. CentOS7 MongoDB安装及基本配置

    一.安装包的获取 1.创建文件: vi /etc/yum.repos.d/mongodb-org-4.0.repo 2.在上一步创建的文件中,写入如下内容: [mongodb-org-4.0] nam ...

  6. Python爬虫抓取某音乐网站MP3(下载歌曲、存入Sqlite)

    最近右胳膊受伤,打了石膏在家休息.为了实现之前的想法,就用左手打字.写代码,查资料完成了这个资源小爬虫.网页爬虫, 最主要的是协议分析(必须要弄清楚自己的目的),另外就是要考虑对爬取的数据归类,存储. ...

  7. eclipse相关问题汇总

    安装subclipse svn工具: 配置JavaHL:http://subclipse.tigris.org/wiki/JavaHL#head-5bf26515097c3231c1b04dfdb22 ...

  8. 003-BootStrap完整模板

    <!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="utf-8& ...

  9. clojure学习笔记(一)

    下载地址 需要安装xmind打开 http://pan.baidu.com/s/1dDxKj1B

  10. Java TCP/IP与HTTP协议个人总结(原创)

    首先举个例子方便理解: 1.应用层(http.ftp)就类似:淘宝.京东.易购等网购网站,主要用来负责选择购买商品(制定协议). 2.传输层(TCP.UDP)就类似:中通.申通等物流公司,主要负责传送 ...