一、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. 不用split调转字符串

  2. MAC系统从零开始

    刚从ubuntu转过来,使用mac多有不习惯的地方,下面记录一些使用中遇到的问题,与解决方法. 1.关于应用程序菜单 在mac中的应用程序菜单,不是在应用程序自身,而是在桌面的桌面的顶部栏上,这个栏会 ...

  3. 大话AJAX原理

    大话AJAX原理 一.什么是Ajax Ajax(Asynchronous JavaScript and XML的缩写)是一种异步请求数据的web开发技术,对于改善用户的体验和页面性能很有帮助.简单地说 ...

  4. shell (3) 磁盘挂载

    #!/bin/sh disk=`df -h |grep /dev/sd|awk '{print $1}'` echo $disk for d in $disk do echo $d uuid=`blk ...

  5. FreeRTOS-06任务运行时间信息统计

    根据正点原子FreeRTOS视频整理 单片机:STM32F207VC FreeRTOS源码版本:v10.0.1 * 1. 要使用vTaskGetRunTimeStats()函数,需满足以下条件: * ...

  6. appium关于当前网络情况测试,实现打开关闭网络(python3.4版)

    appium关于当前网络情况测试,实现打开关闭网络(不需要root测试机) # python from appium.webdriver.connectiontype import Connectio ...

  7. Oracle 行列转换函数pivot、unpivot的使用(二)

    一.行转列pivot 关键函数pivot,其用法如下 pivot(聚合函数 for 列名 in(类型)) select * from table_name pivot(max(column_name) ...

  8. 基于spring和mybatis的简单项目流程

    Mybatis整合Spring配置 第一部分:配置Spring框架 配置SpringMVC的步骤 配置流程图 SpringMVC配置 导入包(基本包5个,1日志依赖包,2webmvc支持包) 构建一个 ...

  9. jumserver 官方文档和

      一步一步安装(CentOS) 本文档旨在帮助用户了解各组件之间的关系, 生产环境部署建议参考 进阶安装文档 安装过程中遇到问题可参考 安装过程中常见的问题 测试推荐环境 CPU: 64位双核处理器 ...

  10. Partition Array by Odd and Even

    Partition an integers array into odd number first and even number second. Example Given [, , , ], , ...