原文地址:https://blog.csdn.net/lu_embedded/article/details/80519898

618电商节、双十一购物狂欢节,到底是什么在支撑数以万计的秒杀活动?这就不得不提一直隐姓埋名的 CDN 了,注意不是 CSDN,而是 CDN,CDN,CDN!其全称是 Content Delivery Network,即内容分发网络。 
  那到底 CDN 是什么鬼,我们还得从西天取经说起……


  1300年前,唐僧师徒取经要跋涉十万八千里,历经九九八十一难,一路打怪升级,最终才能修成正果,悟空加冕“斗战胜佛”。 
  1300年后,西游互联网已经开通,雷音寺官网上线,取经只需打开网站,点击下载,凡夫俗子也可以轻易取得真经。

  初时,唐僧师徒觉得当年的辛苦付出颇为不值,慨叹世事变迁,法术高强敌不过科技进步。 
  然四大部洲善男信女众多,扎堆前往雷音寺官网下载经书,网站不堪重负,信徒叫苦不迭,神通广大的如来使出“Scacleup + Scaleout”心法,扩容雷音官网,仍不得其解,遂差遣悟空一查究竟。 
  悟空火眼金睛,半晌就把原因查了个一清二楚,原来信徒要想美美的访问雷音网,需要打败四个妖怪:

第一怪,首里魔

  “首里魔”又称“第一公里魔”,把持网站服务器接入西游互联网的路口带宽,这个带宽决定了能为信徒提供的访问速度和并发访问量。

第二怪,骨干精

  “骨干精”藏于西游互联网的长途传输要道,出没于IDC、骨干网、城域网、接入网等洞穴,使用“时延”和“拥塞”两个妖术作法。

第三怪,互联妖

  西游互联网覆盖四大部洲,各部洲的网络独立运营,“互联妖”善于挑拨离间,让洲与洲之间的互联带宽成为瓶颈。

第四怪,末里兽

  “末里兽”又称“最后一公里兽”,蹲守在上网信徒的家门口,把持用户访问西游互联网的通路,收取买路钱,钱少只能走羊肠小道。 
  悟空看罢大怒,原来是这些妖孽作怪! 
  于是拔下一根毫毛,使出“CDN”大法,变作几百只小猴子,一声令下,每猴背熟一些经文,纷纷潜入到各大部洲的 IDC 山洞中,就近为善男信女们提供讲经服务,这些小猴子被俗称为“cache猴”。

  小猴子们基于这样的规则干活:

A.当某个信徒需要阅读经书,大家就挑选能最快到达信徒家的猴子前去讲经(可能距离最近,也可能是路最好走); 
B.如果某部经书被很多信徒需要,它就会被距离这些信徒最近的小猴子烂熟于心。

  可是猴子很多又生性顽劣,管好还是很费神的,于是悟空叫来了师父和师弟们帮忙,师徒同心,其利断金。

  沙和尚任劳任怨,悟空让他承担“分发服务”:

  老沙的主要职责是将经书内容从雷音寺中心向各部洲的“cache猴”推送和存储,承担实际的佛经流量全网分发工作和面向最终信徒的阅读请求服务。

  猪八戒肠肥肚圆,悟空让他承担“负载均衡”:

  八戒负责对所有发起阅经请求的信徒进行访问调度,确定提供给信徒的最终实际访问地址,告诉信徒那个小猴子最适合他。

  唐三藏高瞻远瞩,悟空请他承担“运营管理”:

  唐僧负责对日常事务的监管、收支核算、团队状态的检查、分析,也承担与大客户–佛祖“疏通”关系等职责。 
  在师徒四人的通力合作下,四个妖怪被打败,如来佛祖的心病治愈了,天下苍生得以美美滴上网取经。 
  雷音寺赚得盆满钵满,不断推出新的服务,原来只有经书下载,现在可以在线浏览经书,还可以视频直播,观看佛祖在线讲经。 
  于是唐僧师徒的 CDN 服务从原来只提供文件传输加速服务,到后来增加为流媒体加速服务、网页浏览加速服务等等。 
  从此,天下再没有难取的经,悟空得到佛祖嘉奖,从“斗战胜佛”升级为“斗站胜佛”!

  好了,西游记的故事讲完了,小伙伴们也明白什么是 CDN 了。

什么是 CDN(超形象)的更多相关文章

  1. 转: 解决Github访问超慢问题

    转自:http://zengrong.net/post/2092.htm 解决Github访问超慢问题 Github is so slowly. 这段时间访问 github 都非常慢,google了一 ...

  2. 超强、超详细Redis数据库入门教程

    这篇文章主要介绍了超强.超详细Redis入门教程,本文详细介绍了Redis数据库各个方面的知识,需要的朋友可以参考下 [本教程目录] 1.redis是什么2.redis的作者何许人也3.谁在使用red ...

  3. CDN缓存那些事

    CDN是什么? 谈到CDN的作用,可以用8年买火车票的经历来形象比喻: 8年前,还没有火车票代售点一说,12306.cn更是无从说起.那时候火车票还只能在火车站的售票大厅购买,而我所住的小县城并不通火 ...

  4. CDN学习笔记一(CDN是什么?)

    CDN是什么? 谈到CDN的作用,可以用8年买火车票的经历来形象比喻: 8年前,还没有火车票代售点一说,12306.cn更是无从说起.那时候火车票还只能在火车站的售票大厅购买,而我所住的小县城并不通火 ...

  5. 解决Github访问超慢问题[自己留档]

    解决Github访问超慢问题 Github is so slowly. 这段时间访问 github 都非常慢,google了一下发现是github某个CDN被伟大的墙屏蔽所致. 出问题的应该是这个CD ...

  6. Java缓存学习之三:CDN缓存机制

    CDN是什么? 关于CDN是什么,此前网友详细介绍过. CDN是Content Delivery Network的简称,即"内容分发网络"的意思.一般我们所说的CDN加速,一般是指 ...

  7. 网站优化与Cdn文件传输服务

    网站优化与Cdn文件传输服务 如今互联网无处不在,其方便快捷.性质和低成本的经济特点,已经逐渐成为商务贸易.信息分发和数据交付的一个重要渠道.要想让数据的分发带来巨大的效益,那么网民的满意是唯一的办法 ...

  8. 分布式还是混合式? 谈CDN架构对服务质量的影响

    传统分布式模型 通 常,内容分发网络(CDN)採用分布式模型.在这样的模型里, 用户的文件存放在一个源server上.而且由大量边缘server负责分发这些文件.这些边缘server的磁盘空间比較小. ...

  9. 开源来自百度商业前端数据可视化团队的超漂亮动态图表--ECharts

    开源来自百度商业前端数据可视化团队的超漂亮动态图表--ECharts 本人项目中最近有需要图表的地方,偶然发现一款超级漂亮的动态图标js图表控件,分享给大家,觉得好用的就看一下.更多更漂亮的演示大家可 ...

随机推荐

  1. PHP隐藏入口脚本文件index.php

    一.nginx下 隐藏入口文件时,配置nginx 首先得开启nginx pathinfo模式: location ~ \.php { #去掉$ root E:/phpStudy/WWW/tp/publ ...

  2. Quartz.NET浅谈一 : 简单Job使用(定时发送QQ邮件)

    Quartz.NET是一个全功能的开源作业调度系统,可用于从最小的应用程序到大型企业系统. 直接上代码吧... 一.新建一个控制台项目 略过 二.安装Nuget包 三.创建发送邮箱辅助工具类 stat ...

  3. Java SpringBoot全局错误处理类,返回标准结果

    package demo.utils; import com.alibaba.fastjson.JSON; import demo.controller.ProductController; impo ...

  4. SpringMVC返回结果值处理器之返回一个值

    处理器一共分为两类: 一类是返回到一个页面,凡是返回页面的处理器,一定会刷新页面,对应的请求应该是同步请求. 一类是返回结果,凡是返回结果的处理器,一定是请求方需要得到这个结果值,此时就需要一个有回调 ...

  5. 小程序弹框wx.showModal的使用

    if (!logined) { wx.showModal({ title: '提示', content: '您还没登录登录车掌柜, 是否前往登录', confirmText: '前往登录', conf ...

  6. Spring boot Bean装配

    . Spring boot bean 默认创建的bean 为singleton模式 . @Component 注解 . @Value 为属性初始化 . @Value("${}") ...

  7. 【软工实践】Alpha冲刺(1/6)

    链接部分 队名:女生都队 组长博客: 博客链接 作业博客:博客链接 小组内容 恩泽(组长) 过去两天完成了哪些任务 描述 了解了反馈机制的实现原理 确定好算法的框架 对接口的规范化进行学习 展示Git ...

  8. 开源JS图片裁剪插件

    开源JS图片裁剪插件 一.总结 一句话总结: 要用点赞最高的插件,这样适用性最好,效果最好,出问题的概率也最低,这里电脑端和手机端都可以用的建议用 cropper.js 二.5款好用的开源JS图片裁剪 ...

  9. 用样式表美化QTabwidget外观

    没有仔细看是否正确,先保存到这里,以后研究一下 一.参考文章:http://bbs.csdn.net/topics/390632657?page=1 setStyleSheet("QTabW ...

  10. 树莓派PWM

    import RPi.GPIO as GPIO import time GPIO.setmode(GPIO.BCM) GPIO.setup(26, GPIO.OUT) p = GPIO.PWM(26, ...