- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
高并发系统设计学习笔记(十四)CDN静态资源如何加速--第1页
⾼并发系统设计学习笔记(⼗四)CDN静态资源如何加速
⽬录
⼀、静态资源加速的考虑点
我们使⽤分布式缓存对动态请求数据的读取做了加速,但是在我们的系统中存在着⼤
量的 静态资源请求:
1. 对于移动APP来说,这些静态资源主要是图⽚、视频和流媒体信息;
2. 对于Web⽹站来说,则包括了JavaScript⽂件、CSS⽂件、静态HTML⽂件等等。
⼀般来说,图⽚和视频的⼤⼩会在⼏兆到⼏百兆之间不等,如果我们的应⽤服务器和分布式缓存都部署在北京的机房⾥,这时⼀个杭州的⽤
户要访问缓存中的⼀个视频,那这个视频⽂件就需要从北京传输到杭州,期间会经过多个公⽹⾻⼲⽹络,延迟很⾼,会让⽤户感觉视频打开
很慢,严重影响到⽤户的使⽤体验。
静态资源访问的关键点是就近访问, 即北京⽤户访问北京的数据,杭州⽤户访问杭州的数据,这样才可以达到性能的最优。
在业务服务器的上层增加⼀层特殊的缓存,⽤来承担绝⼤部分对于静态资源的访问,这⼀层特殊缓存的节点需要遍布在全国各地,这样可以
让⽤户选择最近的节点访问。缓存的命中率也需要⼀定的保证,尽量减少访问资源存储源站的请求数量 (回源请求)。这⼀层缓存就是我们
这节课的重点:CDN
⼆、CDN的关键技术
CDN Content Delivery Network/Content Distribution Network内容分发⽹络。
CDN就是将静态的资源分发到位于多个地理位置机房中的服务器上,因此它能很好地解决数据就近访问的问题,也就加快了静态资源
的访问速度
搭建⼀个CDN系统需要考虑哪两点
如何将⽤户的请求映射到CDN节点上;
如何根据⽤户的地理位置信息选择到⽐较近的节点
1.如何让⽤户的请求到达CDN节点
需要依靠DNS来帮我们解决域名映射的问题,DNS (Domain Name System,域名系统)实际上就是⼀个存储域名和IP地址对应关系的分
布式数据库。
高并发系统设计学习笔记(十四)CDN静态资源如何加速--第1页
高并发系统设计学习笔记(十四)CDN静态资源如何加速--第2页
下⾯我以 这个域名为例给你简单介绍⼀下域名解析的过程
⼀开始,域名解析请求先会检查本机的hosts⽂件,查看是否有 对应的IP;
如果没有的话,就请求Local DNS是否有域名解析结果的缓存,如果有就返回标识是从⾮权威DNS返回的结果;
如果没有就开始DNS的迭代查询。先请求根DNS,根DNS返回顶级DNS(.com)的地址;再请求.com顶级DNS得到
的域名服务器地址;再从的域名服务器中查询到 对应的IP地址,返回这个IP地址的同时标记这个结
果是来⾃于权威DNS的结果,同时写⼊Local DNS的解析结果缓存,这样下⼀次的解析同⼀个域名就不需要做DNS的迭代查询了
经过了向多个DNS服务器做查询之后,整个DNS的解析的时间有可能会到秒级别,那么我们如何来解决这个性能问题呢?
在A 启动时对需要解析的域名做预先解析,然后把解析的结果缓存到本地的⼀个LRU缓存⾥⾯。这样当我们要使⽤这个域名的时候,只需
要从缓存中直接拿到所需要的IP地址就好了,如果缓存中不存在才会⾛整个DNS查询的过程。
这⾥总结⼀下, 将⽤户的请求映射到CDN服务器上是使⽤CDN时需要解决的⼀个核⼼的问题,⽽CNAME记录在DNS解析过程中可以充当
⼀个中间代理层的⾓⾊,可以把⽤户最初使⽤的域名代理到正确的IP地址上。
高并发系统设计学习笔记(十四)CDN静态资源如何加速--第2页
高并发系统设计学习笔记(十四)CDN静态资源如何加速--第3页
2.如何找到离⽤户最近的CDN节点
GSLB (Global Server Load Balance,全局负载均衡)的含义是对于部署在不同地域的服务器之间做负载均衡,下⾯可能管理了很多的
本地负载均衡组件。它有两⽅⾯的作⽤
⼀⽅⾯,它是⼀种负载均衡服务器,负载均衡,顾名思义嘛,指的是让流量平均分配使得下⾯管理的服务器的负载更平均;
另⼀⽅⾯,它还需要保证流量流经的服务器与流量源头在地缘上是⽐较接近的
GSLB可以通过多种策略来保证返回的CDN节点和⽤户尽量保证在同⼀地缘区域,⽐如说可以将⽤户的IP地址按照地理位置划分为若⼲个区
域,然后将CDN节点对应到⼀个区域上,根据⽤户所在区域来返回合适的节点;也可以通过发送数据包测量RTT的⽅式来决定返回哪⼀个节
点。
高并发系统设计学习笔记(十四)CDN静态资
文档评论(0)