文档章节

程序员常说的CDN是什么?

晚餐吃什么
 晚餐吃什么
发布于 2016/09/29 19:58
字数 1179
阅读 6
收藏 0
点赞 0
评论 0

程序员每天提及的无数词当中,有一个是「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是一种资源的分布式存放和备份的方法。

© 著作权归作者所有

共有 人打赏支持
晚餐吃什么
粉丝 0
博文 8
码字总数 2072
作品 0
珠海
程序员
.Java程序员在企业做什么工作?

什么是程序员? 程序员的概念在这里就不说了,想知道的可以看百度百科,这种词的定义搬过来没有什么意义,在行业内,程序员有一个别名“玩俄罗斯方块的”,确实很形象,但是我们也要理解真正...

khnj89 ⋅ 2015/12/29 ⋅ 0

程序员的十大谎言

国外知名的问答网站Quora上最近有人提出一个问题:程序员们最常说的谎话是什么? 首先,这个问题本身就很有意思,做码农这一行当的人总喜欢挖苦自己,从自身找乐子,就像《软件纠错的六个阶段...

oschina ⋅ 2012/09/28 ⋅ 63

简单的php基于curl的反向代理程序

起因: 经理:需要实现一个反向代理? 我: 简单,nginx分分钟配置好。 经理:嗯?没有nginx? 我: nodejs也行啊,网上有例子分分钟搞定。 经理:嗯?只有虚拟主机,只能上传php程序? 我:...

任臻 ⋅ 2016/04/30 ⋅ 2

盘点各种程序员常用的框架,有你用的吗?

避免重复造轮子,我们现在的程序员都在尽量的使用框架来完成很多功能需求,那么你知道各种程序员都常用什么框架吗? JavaScript 程序员 自从有了基于服务端的JavaScript,JavaScript程序员似...

达尔文 ⋅ 2017/09/24 ⋅ 32

年薪60w的程序员与年薪6w的极品程序员,差距怎么这么大呢?

首先申明:非针对程序员本人也是程序员。世人常说我们做程序的太木讷,太呆板,其实真不然!在这里咱也娱乐一下,幽默一下,笑了的朋友,请绝对支持“程序猿”哦...........不管怎么说,他们...

zwjweb ⋅ 03/26 ⋅ 0

30 岁后将发生的事情让程序员们惊恐

英语中常说“30 is the new 20”,但这话并不总是对的——事实上,当遇到软件开发业里的人时,情况似乎完全相反。虽然有很多杰出人士在30岁刚开始达到仕途的巅峰,但对大多数普通程序员来说,...

oschina ⋅ 2014/03/25 ⋅ 92

ReplaceGoogleCDN:将 Google CDN 替换为国内的 Chrome 插件

Chrome Web Store 安装地址: https://chrome.google.com/webstore/detail/replace-google-cdn/kpampjmfiopfpkkepbllemkibefkiice 由于众所周知的原因,只需替换一个域名就可以继续使用Googl...

justjavac ⋅ 2014/11/04 ⋅ 1

苹果Objective-C一枝独秀:程序员啃骨头

【IT168 技术】作为一个 Objective-C的 coder,我总能听到一部分人在这门语言上抱怨有很多问题。他们总在想快速学习这门语言来写一个 App 出来,但他们也总是联想到 Objective-C看上去实在太...

开源中国社区 ⋅ 2012/03/08 ⋅ 0

小白专题,如何快乐的去装逼

我经常遇到一些哭笑不得的问题,比如谁能解释一下什么是API? 架构是个啥东西? 还有一些小白同学 一上来就跟我说 想做微信开发 要学什么。 我也看了知乎上的一些回答,总觉得这些回答不是给...

lilugirl ⋅ 2016/06/14 ⋅ 2

云帆加速:揭秘CDN用户驱动的产品变革

  前言:OTT-TV、IPTV在视频大屏化的趋势下火热起来,传统广电、运营商也在时代迅速互联网化的缝隙中找到了转变的节奏,但这似乎并没有减少他们互联网化下的焦虑。   在5.17-18的亚太OTT...

it168网站 ⋅ 2017/05/27 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Mahout推荐算法API详解

前言 用Mahout来构建推荐系统,是一件既简单又困难的事情。简单是因为Mahout完整地封装了“协同过滤”算法,并实现了并行化,提供非常简单的API接口;困难是因为我们不了解算法细节,很难去根...

xiaomin0322 ⋅ 15分钟前 ⋅ 0

WampServer默认web服务器根目录位置

安装WampServer之后的web服务器根目录默认位置在WampServer安装目录下的www:

临江仙卜算子 ⋅ 17分钟前 ⋅ 0

Redux的一些手法记录

Redux Redux的基本概念见另一篇文。 这里记录一下Redux在项目中的实际操作的手法。 actions 首先定义action.js,actions的type,可以另起一个action-type.js文件。 action-type.js用来存...

LinearLaw ⋅ 18分钟前 ⋅ 0

android 手势检测(左右滑动、上下滑动)

GestureDetector类可以让我们快速的处理手势事件,如点击,滑动等。 使用GestureDetector分三步: 1. 定义GestureDetector类 2. 初始化手势类,同时设置手势监听 3. 将touch事件交给gesture...

王先森oO ⋅ 32分钟前 ⋅ 0

java 方法的执行时间监控 设置超时(Future 接口)

java 方法的执行时间监控 设置超时(Future 接口) import java.util.concurrent.Callable; import java.util.concurrent.ExecutionException; import java.util.concurrent.Executor......

青峰Jun19er ⋅ 37分钟前 ⋅ 0

一名开源小白的Apache成长自述

今天收到了来自Apache Vote我成为Serviceomb项目Committer的邮件,代表自己的贡献得到了充分的肯定;除了感谢团队的给力支持,我更希望将自己的成长经历——如何践行Apache Way的心得介绍给大...

微服务框架 ⋅ 39分钟前 ⋅ 0

vim介绍、颜色显示和移动光标、一般模式下复制、剪切和粘贴

1.vim 是 vi 的升级版 vim 是带有颜色显示的 mini安装的系统,一般都不带有vim [root@aminglinux-128 ~]# yum install -y vim-enhanced已加载插件:fastestmirror, langpacksLoading mir...

oschina130111 ⋅ 39分钟前 ⋅ 0

Deepin 操作系统四面楚歌

作为国内做的最好的 Linux 发行版,源自 Debian sid 的 Deepin 目前正面临重重困境,新版本不断延期,开发人员离职,bug 长期得不到修复,和 Debian/Ubuntu 的兼容性问题也面临越来越严重的挑...

六库科技 ⋅ 39分钟前 ⋅ 0

MyBatis之动态sql

我们需要知道的是,使用mybatis重点是对sql的灵活解析和处理。在原先的UserMappser.xml中,我们这样查询表中满足条件的记录 : 123 <select id="findUserList" parameterType="userQuery...

瑟青豆 ⋅ 40分钟前 ⋅ 0

这届俄罗斯世界杯的冷门那么多怎么办?

最纯粹的世界杯,最神奇的大冷门。 德国0比1被墨西哥摩擦了。 日本历史性的赢了哥伦比亚。 C罗也挑平了西班牙。 梅西被冰岛狮吼吼愣神了。 就连11次进世界杯4强的巴西也被瑞士逼平了。 天台已...

开源中国众包平台 ⋅ 40分钟前 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部