浅浅了解一下CDN

109 阅读3分钟

在看面经,偶然看到这个。只是大致知道这个东西,个人理解是区域性的缓存。在这里简单熟悉一下。

CDN是什么?

内容分发网络(Content Delivery Network)是一个互连服务器网络,可加快数据密集型应用程序的网页加载速度。用户首次请求到CDN节点,CDN节点未命中向源站获取文件,源站根据请求响应内容给CDN节点,同时CDN节点缓存内容,CDN节点将内容响应给终端用户,当同一CDN节点内的用户再次访问时,CDN便会直接将缓存内容返回给用户,让用户就近获取所需内容,降低网络拥塞,提高用户访问响应速度和命中率。

哪些内容适合CDN?

最适合的是那些不会经常变化的内容,

  • 在线音视频播放
  • 游戏安装包获取、手机 ROM 升级、应用程序包下载
  • 门户网站、电商、UGC 社区中的静态资源,如各类型图片、html、css、js文件等

CDN是如何起作用的?

  1. 用户在浏览器访问域名,浏览器对域名进行解析,CDN对域名解析过程进行了调整,所以解析函数库一般得到的是该域名对应的CNAME记录,为了得到实际IP地址,浏览器需要再次对获得的CNAME域名进行解析以得到实际的IP地址;在此过程中,使用全局负载均衡 DNS解析,并**根据地理位置信息解析对应的IP地址,**使得用户能就近访问;
  2. 此次解析得到CDN缓存服务器的IP地址,浏览器在得到实际的IP地址以后,向缓存服务器发出访问请求;
  3. 缓存服务器根据浏览器提供的要访问的域名,通过Cache内部专用DNS解析得到此域名的实际IP地址,再由缓存服务器向此实际IP地址提交访问请求;
  4. 缓存服务器从实际IP地址得到内容以后,一方面在本地进行保存,以备以后使用,另一方面把获取的数据返回给客户端,完成数据服务过程;
  5. 客户端得到由缓存服务器返回的数据后显示出来并完成整个浏览的数据请求过程。

CDN如何更新资源

开发者可以通过CDN服务商提供的“刷新缓存”接口来达到清理CDN边缘节点缓存的目的。这样开发者在更新数据后,可以使用“刷新缓存”功能来强制CDN节点上的数据缓存过期,保证客户端在访问时,拉取到最新的数据,即主动刷新 image.png

开启掘金成长之旅!这是我参与「掘金日新计划 · 2 月更文挑战」的第 14 天,点击查看活动详情

参考

developer.aliyun.com/article/100…
www.zhanzhangb.com/2058.html
tuonioooo-notebook.gitbook.io/high-concur…