CDN
引言:
转载自趣讲CDN
很久以前,有个叫小东的老板,他很喜欢喝奶茶,而且特别喜欢清华大学校园里的。
有一天,身在广州的老板突然想喝奶茶了,于是叫秘书去买一杯清华牌奶茶。可是,老板等了好久好久,依旧没有看到那杯奶茶,直到等到天黑了,秘书才买回来。BOSS很生气,大发雷霆:我都渴死了,你才回来!
秘书感到很委屈啊!马不停蹄,没有喘一口气,就飞奔回来了!你竟然还嫌弃我慢。于是秘书就把一路的艰辛告诉了老板:
我拿到奶茶,从清华出来,你去过清华吗?那个门,那么小,还有那么多人排队进去参观,人山人海啊!好不容易从清华出来,打个的士,直奔机场。一路听着五环之歌到了机场,GG,飞机晚点啊!好吧,飞机终于起飞了。飞啊飞,到了广州,还是叫了的士,呵呵,遇上了上下班高峰期啊,堵车!最后一公里,的士进不去,于是踩了一辆ofo,中间还掉链子,最后跑步才送到。你看,我多不容易!
老板想想,确实是挺不容易的,善于分析的他总结了一下主要的问题:
- 第一公里:门太小,人太多
- 交通工具切换:飞机晚点,需要等待
- 城市交通枢纽:堵车,没办法啊
- 最后一公里:路太小,只能骑单车
热衷于喝奶茶的他,对这些问题简直不能忍啊!于是就对秘书说,我有钱,你帮我想办法,搞定这些问题,我希望下次无论我在哪个地方,都能第一时间喝到奶茶!
有钱自然好办事。秘书灵机一动,直接买下了奶茶品牌。然后在老板经常去的地方都建立了奶茶仓库,同时聘请了一位首席分发官,负责从总部定期将最新的奶茶分发运送到各个地方的仓库。秘书还请了一位首席调度官,每次老板需要喝奶茶的时候,秘书就问他要到最合适的仓库。这样一来,秘书就能最快速度地拿到老板的奶茶。
老板看到这个成果,很是高兴啊。这么伟大的套路,总得给他个惊天地泣鬼神的称号,想想,这是一套专门传送我小东要喝的奶茶的方案,就叫“传东奶”吧。秘书不禁笑了出来,怎么可以这么low!秘书再次展现他的聪明才智,说:老板,我们要和国际接轨,取个高大上的名字,不如拼音缩写,就叫CDN吧。老板拍腿称赞:好!
然而,这个套路也有他的不好之处,就是会有延迟的问题,在一定的时间内,各地方仓库中的奶茶并不是最新的。这看起来没有什么大问题,但却让老板吃了大苦头!有一次在米国,突然想喝奶茶,于是在当地的仓库中拿了一杯烧仙草奶茶,结果不新鲜,喝了就中毒了。据说中了一种叫仙人跳的毒药。哎,苦不堪言!
什么是CDN
CDN
全称是Content Delivery Network,即内容分发网络,
CDN
是依靠部署在各地的边缘服务器,通过中心平台的负载均衡、内容分发、调度等功能模块,使用户就近获取所需内容,降低网络拥塞,提高用户访问响应速度和命中率。
简单理解了,CDN
是利用缓存技术,解决如何将数据快速可靠从源站传递到用户的问题。用户获取数据时,不需要直接从源站获取,通过CDN分发,用户可以从一个较优的服务器获取数据,从而达到快速访问,并减少源站负载压力的目的。
CDN原理
1,A记录
即Address记录,它并不是一个IP或者一个域名,我们可以把它理解为一种指向关系:
- 域名 www.xx.com → 111.111.111.111
可以理解为,最终的域名与IP的对应关系这条记录,就是A记录
2,CNAME
为什么要区分A记录和CNAME?我们可以把CNAME记录叫做别名记录,就是小名。
比如A记录为:
www.credit.com → 111.111.111.111
那么可能有多个CNAME记录
www.100fen.com → www.credit.com
www.baifen.com → www.credit.com
在阿里云的控制台,我们可以对 www.credit.com 域名设置几个 CNAME 的配置,比如我们配置:
- CNMAE记录: www.credit.com → cdn.credit.com
- A记录:cdn.credit.com → 222.222.222.222
CDN 是怎么做到优化的
负载均衡
CDN负载均衡设备会为用户选择一台合适的缓存服务器提供服务。
选择的依据包括:
1根据用户IP地址,判断哪一台服务器距离用户最近;
2根据用户所请求的URL中携带的内容名称,判断哪一台服务器上有用户所需内容;
3查询各个服务器的负载情况,判断哪一台服务器的负载较小。
基于以上这些依据的综合分析之后,负载均衡设置会把缓存服务器的IP地址返回给用户。
用户访问的网站使用了CDN,其过程会变成以下这样:
- 用户向浏览器输入
www.processon.com
这个域名,浏览器第一次发现本地没有DNS缓存,则向网站的DNS服务器请求; - 浏览器向DNS服务器请求对该域名的解析。由于CDN对域名进行了调整,DNS服务器最终会将域名解析权交给
CNAME
指向CDN专用的DNS服务器; - CND的DNS负载均衡系统解析域名,把对用户响应速度最快的IP地址返回给用户;
- 用户向该IP地址(CND服务器)发出请求;
- CND负载均衡设备会为用户选择一台合适的缓存服务器提供服务;
- 用户向缓存服务器发出请求;
- 缓存服务器响应用户请求,将用户所需的内容返回给用户;