一、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. Ping程序

    一.概述 Ping程序是对两个TCP/IP系统连通性进行测试的基本工具.该程序发送一份ICMP回显请求报文给主机,并等待返回ICMP回显应答. 二.格式 大多数TCP/IP实现都在内核中直接支持Pin ...

  2. UITableViewCell笔记

    默认的四种cell的类型 原网站 还有这个带图的 据我自己试验,只有value2不自带imageview 不同的accessoryType 可以看到,一个tabelviewcell的contentvi ...

  3. 03. PNG,GIF,JPG的区别及如何选?

      3.PNG,GIF,JPG的区别及如何选? 照片用 JPG. 动画用 GIF. Logo.Icon 等小图用 PNG-8. 非特殊情况,尽量不要用 PNG-24 和 PNG-32.  

  4. css modules

    https://juejin.im/post/5aa727fc518825364001159b http://www.ruanyifeng.com/blog/2016/06/css_modules.h ...

  5. print高亮显示

    显示颜色格式:\033[显示方式;字体色;背景色m......[\033[0m] ------------------------------------------- --------------- ...

  6. stark - 2 ⇲路由分发

    在介绍前面三个注意点后,开始写stark组件内容. from django.apps import AppConfig from django.utils.module_loading import ...

  7. python自动化 协程函数、二分查找、模块搜索

    协程函数 yiled: 把函数的执行结果封装好__iter__和__next__得到一个迭代器 与return功能类似,都可以返回值,但是return只能返回一次只 def fun(count): p ...

  8. 关于 IsLocalUrl 方法的注意事项

    用于判断是否为本地url的方法 Url.IsLocalUrl() 的注意事项: 此方法是以判断传入的url字符串的开头是否为 "/" 为依据来判断是否为本地url,所以如果传入的u ...

  9. 移动端滑动时页面惯性滑动overflow-scrolling: touch

    -webkit-overflow-scrolling:auto | touch; auto: 普通滚动,当手指从触摸屏上移开,滚动立即停止 touch:滚动回弹效果,当手指从触摸屏上移开,内容会保持一 ...

  10. saltstack源码详解一

    目录 初识源码流程 入口 1.grains.items 2.pillar.items 2/3: 是否可以用python脚本实现 总结pillar源码分析: @(python之路)[saltstack源 ...