CDN简谈及实现原理分析

很多人可能不了解cdn,认为自己没用过cdn,其实不然,我们已经在用了。先举个栗子,大家有没有想过为什么双十一的时候这么多人抢购,流量超级大,为什么很少出现网页加载不出来,也没见过淘宝服务器奔溃呢?

举个栗子

正常情况下肯定会奔溃的,你想想,上亿人同时向一台服务器发起请求,服务器还不得冒烟啊?

实际上cdn就在里面发挥着功不可没的功劳。抛开技术方面的优化,假设淘宝只有一台服务器A在运行,从原则上来说我们是应该从这台A服务器下载资源的(html、js、css等),可是淘宝会把这些静态资源分发到全国各个地方的网络节点上(可以理解成每一个城市部署一个机房),我们访问的时候实际是从离我们最近的那台服务器B下载的资源,这就是cdn。

1、什么是cdn

cdn顾名思义是一个英文缩写,全称是content delivery network(内容分发网络),即服务商通过在世界各地部署大量服务器节点缓存源站静态资源(目标服务器),当用户访问时返回最优线路的资源,提高网页响应速度,给用户带来更好的体验。

eg:阿里云服务商在全国部署了大量的服务器,某公司觉得自己的服务器带宽不够大,希望在阿里云的这些服务器上分担压力,所以阿里云服务商会从该公司的网站中拉取静态资源(源站资源),然后在自己的各个服务器上添加该资源的缓存,最后返回一个url地址给该公司,该公司只需要把之前的资源地址(js、css、html、img等)替换成这个url就可以了;当用户访问时,实际上走的请求是阿里云的服务器,然后阿里云返回一个最快的资源给你(如你在广州就返回广州服务器的资源,而不是北京服务器的资源)

cdn的核心技术在于智能dns与内容存储,用户访问时根据所在线路与位置,就近选择最快的服务器节点,然后从缓存中取出相应内容,避免了直接从源站拉取资源、减低了网络阻塞。

下面我们先说一下cdn的三大组成部分

1.1、squid 代理web缓存服务器

前面我们也说到,服务商会返回一个url给源站,如https://aliyun.cdn.com/xxx/main.js,那么我们就不难想到它其实就是一个web服务器提供(像我们的iis、tomcat、nginx等),cdn下使用的web服务器大多是squid,下面说一下squid以及nginx在linux下的安装:

1、yum  install  squid   -g //安装squid

2、vim /etc/squid/squid.conf //配置端口代理


1、yum  install  nginx  -g  //安装nginx

2、vim /etc/nginx/nginx.conf  //配置端口代理

所以squid就是一个web代理服务器,只不过它在缓存服务方面比较出色。

1.2、计算机集群

从执行性能上来说,个人PC  <  服务器  <  计算机集群,那么什么是计算机集群呢?其实从定义上来说,计算机集群是通过松散集成的计算机软件或硬件连接起来的完成计算工作的计算机系统,通俗来理解就是把很多服务器组合起来,共同完成某一项任务,这样工作效率自然会大于一台电脑。

作为cdn服务的提供商(服务商),他们会在各个城市部署很多的服务器,从而组成一张庞大的计算机集群网,使得各个地方的用户附近都至少有一台可访问的服务器。

1.3、智能dns

说到智能dns,那么我得说一下“不智能的”dns。dns,全称domain name system,域名系统,万维网上的每一个设备(pc、手机等)都有一个属于自己的ip地址,也可以当做设备的身份证,然而这个ip地址太过长了,不便于记忆,所以就用域名来作为ip的别名,如百度的域名是baidu.com,当用户输入百度域名并回车后,通过dns系统获取到真实ip地址14.215.177.39。

dns解析流程:浏览器host   》   系统host   》   运营商解析   》   根域解析

我们普通的dns往往慢就慢在跨线路和跨国际,能不能根据用户所在地址,返回合适的ip地址呢,这就产生了智能dns。

智能dns位于cdn服务器层,它根据用户来源的线路以及所在的位置,根据当前网络负载情况,选取出距离最近的同线路服务器,并放回该服务器的ip地址(cdn计算器集群的每一台服务器都具备相同的功能与内容,因而返回不同的ip,处理的结果都是一样的)。

2、cdn产生背景

对于大部分的中小型企业,服务器性能不会很好,带宽也不会很大,一旦遇到访问量“井喷”的情况就会奔溃了,比如双十一、12306春运期间甚至是一些学校的选课系统,那么解决措施往往就是出钱出力升级配置了。

其次由于我国国土辽阔,存在着不少的网络运营商,如巨头电信联通,这也就导致了不同运营商(线路间)互联不互通,如广州电信用户访问北京联通机房的服务器速度慢。

这时候cdn就应运而生了,它依靠着强大的服务器集群能力为各网站提供缓存加速服务。

3、cdn加速原理

cdn之所以快靠的是多节点、多线路、用缓存;

多节点,也就是多服务器,这样让用户没必要直接向源站请求资源,而是向最近的服务器请求就行了;

多线路,避免了跨线路互联不互通的尴尬;

用缓存,这个前面没有怎么提,cdn服务器会从源站拉取资源并缓存到内存中,当用户访问的时候直接从内存中取出来,这样就比从硬盘中去出来快了不少;其次cdn服务器知道源站资源发生变化后,会通知其它服务器同时更新资源。

4、cdn的优势

智能dns让用户可以访问同线路最近的服务器

cdn的缓存机制可以加快访问速度,也可以缓解源站服务器压力(因为根本不会去访问源站)

cdn让大规模的用户请求架构变得简单

cdn性价比高,同带宽需求下cdn服务比增加带宽划算

5、cdn适用范围

静态和更新频率低的内容

数据流量大的产品

带宽需求大的产品

有钱的主...


其实cdn服务商有不少,如阿里云cdn、腾讯云cdn、百度云cdn、网易云cdn、360cdn等等

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 159,015评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,262评论 1 292
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,727评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,986评论 0 205
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,363评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,610评论 1 219
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,871评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,582评论 0 198
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,297评论 1 242
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,551评论 2 246
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,053评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,385评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,035评论 3 236
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,079评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,841评论 0 195
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,648评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,550评论 2 270

推荐阅读更多精彩内容