CDN是啥?

参考:

闲话 CDN:https://zhuanlan.zhihu.com/p/39028766

CDN是什么?使用CDN有什么优势?https://www.zhihu.com/question/36514327?rf=37353035

---------------------------分界线------------------------------------------

        举例:某大学内很多学生都在追《庆余年》,都想看4K画质的视频,但假设学校的带宽不足以支持这些学生看4K画质的视频,这时候可以使用学校内的缓存设备,把学生们爱看的热门视频都缓存,如果有学生请求看某视频,先在学校内的存储设备中检索,如果检索不到再向互联网请求资源。假设大多学生爱看的视频学校缓存服务器中都有,而且每个学校都设置站点,那每个学校的学生都可以以很高的网速观看视频,不用占用访问外网的带宽,同时目标网站的的服务器压力也小的多。所以CDN的本质时缓存,是共享。

        从上例子可以看出,CDN主要功能是在不同的地点缓存内容,通过负载均衡技术,将用户的请求定向到最合适的缓存服务器上去获取内容,比如说,是北京的用户,我们让他访问北京的节点,深圳的用户,我们让他访问深圳的节点。通过就近访问,加速用户对网站的访问。解决Internet网络拥堵状况,提高用户访问网络的响应速度。

        CDN工作原理:通过权威DNS服务器来实现最优节点的选择,通过缓存来减少源站的压力。与传统访问方式不同,CDN网络则是在用户和服务器之间增加缓存层,将用户的访问请求引导到最优的缓存节点而不是服务器源站点,从而加速访问速度。如下图所示。

                                传统访问                                                                    CDN

            

        CDN模型如下图。首先我们在地址栏键入一个网址,浏览器发现本地没有关于这个网址的 DNS 缓存,所以向网站的 DNS 服务器发起请求。网站的 DNS 服务器设置了 CNAME,指向了某个 CDN 服务器,也就是我们常见的阿里云、腾讯云、Cloudflare 之类的,去请求 CDN 中的智能 DNS 均衡负载系统。均衡负载系统解析域名,把对用户响应最快的节点返回给用户,然后用户向该节点发出请求。如果是第一次访问该内容,CDN 服务器会向源站请求数据并缓存,否则的话,直接在缓存节点中找到该数据,将请求结果发给用户。对于最简单的 CDN 系统而言,只要一台 DNS 调度服务器和一个节点服务器即可,但在复杂的应用中,会存在多级缓存,多台 Cache 来协同工作。

                                   

        

总结

CDN 这个东西本质就是一个缓存,只是这个缓存离你特别特别的近,作为用户还是开发都能从中享受到一点福利,但作为一个服务于企业的开发人员,不仅要考虑 CDN 的优点,也要知道 CDN 给我们带来的坑,这样才能靠谱的作为 CDN 的使用者。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章