我们常说的CDN到底是什么?
程序员每天提及的无数词当中,有一个是「CDN」,Ta的中文名是「内容分发网络」,读中文是令人蒙逼的,英文名是Content Delivery Network。
CDN有啥用呢?它主要用来解决什么问题呢?它的原理大概是怎么样的呢?
我们先拆解下这三个名词。
CDN专注于「内容」,也就是CDN的C所代表的Content,专注于静态资源的分发和访问,比如一张图片,一个文本文件,一个视频,一个CSS,一个JS等等,任何以文件形式存储的,为了提高在互联网上的访问速度和质量,都可以将这个资源部署在CDN这个网络上。
CDN动作是「分发」,也就是如何让刚才提到的那些「内容」快速的部署在这个网络中,从而快速为用户服务,其实还有一层更重要的含义是用户的快速访问与就近接入,分发的目的是为了用户更好的体验。
CDN落定于「网络」,是部署于全国或者全世界的一大堆服务器,这些服务器基于当前互联网的基础架构在其上层再构成一个网络,这个网络专为资源分发而生。
解释清楚了这三个词,我们可以推导出CDN的作用是:CDN厂商构建了一个基于互联网数量巨大的服务器,专注于内容和资源分发,方便用户快速访问,提升用户体验的一个内容网络。
为什么CDN专注于提供这项服务有不错的市场呢?或者说没有CDN网络,会发生什么呢?
首先要说的是应用服务器和资源服务器应该解耦,也就是应用服务器只处理逻辑,而资源服务器存放内容或者叫资源。术业有专攻,如果混在一起,会拖慢应用服务器的速度,如果没有CDN来专门处理资源,那所有的资源部署可能会离用户很远,保证不了体验,专业的CDN服务商专注于这里,并且规模也让成本不断下降,就像许多公司周边产品都是外包出去,自己也可以做,只不过专门生产礼品的公司会更有效率、更专业、价格也更低、不耗费自己公司的人力资源。
假设你在创业,那如果你只租用了一台服务器,并把资源也放在这个服务器上,那和把资源放在CDN上对于全国用户的体验会差很远,假设服务器在北京,那广东的用户要走更长的路,而且还处理不了跨运营商访问等等一系列问题。
那CDN的原理是什么呢?为什么用户可以接入离他最近的服务器呢?这个问题以前叙述过,主要是利用了DNS来判断用户位置,再返回给用户最近的机房的服务器的资源地址。
肯德基的总部在美国,可是你家楼下也有一家肯德基,并且汉堡包是一模一样的,这就是CDN(这个比喻来自知乎,觉得非常的恰当)。肯德基部署了很多个CDN在世界各地提供服务,用户都是找到最近的店,这个计算过程就是刚才讲的「就近接入」。
在一个商圈有两家肯德基,有一家组织活动,鸡腿随便吃,所以顾客全部涌到这家店,已经水泄不通,另一家店则门可罗雀。这个时候CDN的调度功能就要发挥作用了,另一家店也发布了一个消息说,买一个汉堡,打五折。这个时候,在第一家店抢不上鸡腿的顾客,马上跑去了第二家店,这个时候两个店的流量处于均衡状态。这就是CDN的调度。
美国肯德基总部研发了一个新菜,叫「回锅肉汉堡」,这个时候总部要把这个「内容」向全世界分发,让每一个分店,都能开始卖回锅肉汉堡,好让新老产品能够并驾齐驱,这个就是内容分发网络的「分发」。这个时候你要吃回锅肉汉堡的时候,直接去你家楼下就可以了。
总结一下,CDN是一种资源的分布式存放和备份的方法。
我们常说的CDN到底是什么?的更多相关文章
- (转)CDN——到底用还是不用?
		用CDN的七个理由 浏览器从服务器上下载css.js和图片等文件时都要和服务器连接,而大部分浏览器对同一个域名用于下载文件的并发连接数限制在4个,这意味着如果要下载第五个文件就必须等前四个文件中有一个 ... 
- CDN——到底用还是不用?
		最近在学bootstrap,在知乎上搜索bootstrap看到有人问bootstrap基础包体积较大,对性能影响会不会很大,看到两种方法来减少对性能的影响: 有选择地部分加载,bootstrap带有L ... 
- 我们常听到的WAL到底是什么
		什么是 WAL WAL(Write Ahead Log)预写日志,是数据库系统中常见的一种手段,用于保证数据操作的原子性和持久性. 在计算机科学中,预写式日志(Write-ahead logging, ... 
- 《CDN技术详解》 - CDN知多少?
		开发时间久了,就会接触到性能和并发方面的问题,如果说,在自己还是菜鸟的时候完全不用理会这种问题或者说有其他的高手去处理这类问题,那么,随着经验的丰富起来,自己必须要独立去处理了.或者,知道思路也行,毕 ... 
- CDN,你了解多少?
		大家对CDN并不陌生,工作中或多或少都有所接触,最近也有人问到,在此对CDN相关概念和流程做下总结,希望还能对其他朋友也有所帮助. 一.什么是CDN 维基百科上是这样定义的: CDN:内容分发网络(C ... 
- 浅谈CDN、SEO、XSS、CSRF
		CDN 什么是CDN 初学Web开发的时候,多多少少都会听过这个名词->CDN. CDN在我没接触之前,它给我的印象是用来优化网络请求的,我第一次用到CDN的时候是在找JS文件时.当时找不到相对 ... 
- CDN理解<转>
		CDN则是更高级的手段.CDN到底如何工作的呢,让我们来大概了解一下! CDN的基础百科资料也很多了,我也稍等提一下.CDN,Content Distribute Network,即:内容分发网络. ... 
- 聪明的Azure CDN,帮你找到云端捷径
		你知道吗?身处上海和纽约的两个用户同时通过网络收看“春晚”直播,纽约播放得可能比上海还要更流畅,这当然不是因为纽约距离北京的直播机房更近或者网速更快,而是因为大年夜在大洋彼岸围观“春晚”的观众相对较少 ... 
- 阿里云高级技术专家空见: CDN的数据化之路
		想要实现优质高速的互联网视频服务,一定离不开高质量的内容分发网络服务,就是我们常说的CDN,在10月13日云栖大会视频多媒体分论坛上,阿里云高级技术专家空见为大家讲解了CDN服务过程中,数据处理.安全 ... 
随机推荐
- CH3201 Hankson的趣味题
			题意 3201 Hankson的趣味题 0x30「数学知识」例题 描述 Hanks博士是BT(Bio-Tech,生物技术)领域的知名专家,他的儿子名叫Hankson.现在,刚刚放学回家的Hankson ... 
- PAT 1007 素数对猜想 C语言
			让我们定义 dn 为:dn = pn+1 - pn,其中 pi 是第i个素数.显然有 d1=1 且对于n>1有 dn 是偶数.“素数对猜想”认为“存在无穷多对相邻且差为2的素数”. 现给定任意正 ... 
- pandas groupby 使用
			so useful~ refer to: http://kekefund.com/2016/06/17/pandas-groupby/ 
- ES6必知必会 (八)—— async 函数
			async 函数 1.ES2017 标准引入了 async 函数,它是对 Generator 函数的改进 , 我们先看一个读取文件的例子: Generator 写法是这样的 : var fs = re ... 
- nginx rewrite规则实例讲解
			一.正则表达式匹配,其中: * ~ 为区分大小写匹配* ~* 为不区分大小写匹配* !~和!~*分别为区分大小写不匹配及不区分大小写不匹配 二.文件及目录匹配,其中:* -f和!-f用来判断是否存在文 ... 
- volatile的本质
			1. 编译器的优化 在本次线程内, 当读取一个变量时,为提高存取速度,编译器优化时有时会先把变量读取到一个寄存器中:以后,再取变量值时,就直接从寄存器中取值:当变量值在本线程里改变时,会同时把变量的新 ... 
- 智能家居入门DIY——【七、添加一个LCD12864吧】
			今天加了一个LCD12864,IC看说明上是ST7567,结果一顿U8g2,发现两个问题: 1.买的时候不知道是卖家写的我理解错了还是怎么了,反正是不出汉字的. 2.U8g2太大了…………占了uno的 ... 
- Java 字符串与对象进行比较 compareTo()
			Java 手册 compareTo public int compareTo(String anotherString) 按字典顺序比较两个字符串.该比较基于字符串中各个字符的 Unicode 值.按 ... 
- python调用R语言,关联规则可视化
			首先当然要配置r语言环境变量什么的 D:\R-3.5.1\bin\x64; D:\R-3.5.1\bin\x64\R.dll;D:\R-3.5.1;D:\ProgramData\Anaconda3\L ... 
- MVVMLight介绍以及在项目中的使用
			http://www.des8.me/detail-1822826.html 一.MVVM 和 MVVMLight介绍 MVVM是Model-View-ViewModel的简写.类似于目前比较流行的M ... 
