资讯专栏INFORMATION COLUMN

CDN的入门了解

Gilbertat / 1312人阅读

摘要:维基百科的基本工作过程最简单的网络是由一台服务器和多台缓存服务器构成。用户向缓存服务器发起请求,缓存服务器响应用户请求,将用户所需内容传送到用户终端。

前言

这段时间,在工作中遇到了一个CDN导致的图片资源加载的错误,在排查问题的过程中,发现自己对CDN的了解非常的片面,仅仅停留在它能缓存静态资源,提升访问速度的了解中。所以觉得还是非常有必要深入去了解下。

什么是CDN?

CDN的全称是Content Delivery Network,即内容分发网络,是指一种通过互联网互相连接的电脑网络系统,利用最靠近每位用户的服务器,更快、更可靠地将音乐、图片、视频、应用程序及其他文件发送给用户,来提供高性能、可扩展性及低成本的网络内容传递给用户。————维基百科

CDN的基本工作过程

最简单的CDN网络是由一台CDN服务器和多台缓存服务器构成。
主要工作过程为:

当用户点击网站页面上的内容URL,经过本地DNS系统解析,DNS系统会最终将域名的解析权交给CNAME指向的CDN专用DNS服务器。

DN的DNS服务器将CDN的全局负载均衡设备IP地址返回用户。

用户向CDN的全局负载均衡设备发起内容URL访问请求。

CDN全局负载均衡设备根据用户IP地址,以及用户请求的内容URL,选择一台用户所属区域的区域负载均衡设备,告诉用户向这台设备发起请求。

区域负载均衡设备会为用户选择一台合适的缓存服务器提供服务,选择的依据包括:根据用户IP地址,判断哪一台服务器距用户最近;根据用户所请求的URL中携带的内容名称,判断哪一台服务器上有用户所需内容;查询各个服务器当前的负载情况,判断哪一台服务器尚有服务能力。基于以上这些条件的综合分析之后,区域负载均衡设备会向全局负载均衡设备返回一台缓存服务器的IP地址。

全局负载均衡设备把服务器的IP地址返回给用户。

用户向缓存服务器发起请求,缓存服务器响应用户请求,将用户所需内容传送到用户终端。如果这台缓存服务器上并没有用户想要的内容,而区域均衡设备依然将它分配给了用户,那么这台服务器就要向它的上一级缓存服务器请求内容,直至追溯到网站的源服务器将内容拉到本地。

为什么需要CDN

根本上的原因是访问速度,访问速度对互联网应用的用户体验,甚至说各种指标(DAU,PV,UV,营收...)都有巨大的影响,任何的互联网企业都渴望自己站点有更快的访问速度和更好的用户体验。而HTTP传输时延对web的访问速度的影响很大(HTTPS更耗时),在绝大多数情况下是起决定性作用的,这是由TCP/IP协议的一些特点决定的。

想要提高访问速度,最直接的做法就是多部署几个服务器在不同的地方,让当前访问用户更靠近服务器。但是多设置几个服务器又会有其他乱七八糟的问题(异地部署,访问一致性,服务管理,成本变高等等)。

这个时候就体现出CDN的作用了。CDN本身是一种公共服务,他本身有很多台位于不同地域、接入不同运营商的服务器,而所谓的使用CDN实质上就是让CDN作为网站的门面,用户访问到的是CDN服务器,而不是直接访问到网站。由于CDN内部对TCP的优化、对静态资源的缓存、预取,加上用户访问CDN时,会被智能地分配到最近的节点,降低大量延迟,让访问速度可以得到很大提升。

最后

掌握CDN工作流程或者基本的原理这种知识,对于一个前端来说,在甩锅的时候更方便。当然最主要是为了解决工作中的问题。

感谢

知乎关于CDN的回答

深度剖析:CDN内容分发网络技术原理

维基百科、百度百科

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/52469.html

相关文章

  • CDN入门了解

    摘要:维基百科的基本工作过程最简单的网络是由一台服务器和多台缓存服务器构成。用户向缓存服务器发起请求,缓存服务器响应用户请求,将用户所需内容传送到用户终端。 前言 这段时间,在工作中遇到了一个CDN导致的图片资源加载的错误,在排查问题的过程中,发现自己对CDN的了解非常的片面,仅仅停留在它能缓存静态资源,提升访问速度的了解中。所以觉得还是非常有必要深入去了解下。 什么是CDN? CDN的全称...

    wapeyang 评论0 收藏0
  • CDN 之我见》系列二:原理篇(缓存、安全)

    摘要:真正要做高性能的系统,不仅需要在数据结构与算法层面深入,更要从硬件操作系统文件系统底层原理等多个领域做更多的研究例如阿里云自研的系统使用了裸盘技术。 《CDN之我见》共由三个篇章组成,分为原理篇、详解篇和陨坑篇。本篇章适合那些从未接触过、或仅了解一些 CDN 专业术语,想深入了解和感受 CDN 究竟是什么的同学。本次由白金老师继续为大家分享《CDN之我见》系列二,主要讲解缓存是什么、工...

    maxmin 评论0 收藏0
  • CDN 之我见》系列二:原理篇(缓存、安全)

    摘要:真正要做高性能的系统,不仅需要在数据结构与算法层面深入,更要从硬件操作系统文件系统底层原理等多个领域做更多的研究例如阿里云自研的系统使用了裸盘技术。 《CDN之我见》共由三个篇章组成,分为原理篇、详解篇和陨坑篇。本篇章适合那些从未接触过、或仅了解一些 CDN 专业术语,想深入了解和感受 CDN 究竟是什么的同学。本次由白金老师继续为大家分享《CDN之我见》系列二,主要讲解缓存是什么、工...

    rainyang 评论0 收藏0
  • 前端资源分享-只为更好前端

    摘要:一团队组织网站说明腾讯团队腾讯前端团队,代表作品,致力于前端技术的研究腾讯社交用户体验设计,简称,腾讯设计团队网站腾讯用户研究与体验设计部百度前端研发部出品淘宝前端团队用技术为体验提供无限可能凹凸实验室京东用户体验设计部出品奇舞团奇虎旗下前 一、团队组织 网站 说明 腾讯 AlloyTeam 团队 腾讯Web前端团队,代表作品WebQQ,致力于前端技术的研究 ISUX 腾...

    zxhaaa 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<