网络架构实战课
谢友鹏
某大厂技术专家
1027 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已更新 18 讲/共 24 讲
网络架构实战课
15
15
1.0x
00:00/00:00
登录|注册

14|CDN 架构(上):怎样加速静态资源下载?

你好,我是谢友鹏。
在前面的课程中,我们已经学习了多种性能优化手段,但这些方法集中在点对点的优化上,尚未充分利用地理位置的优势来进一步提升性能。接下来的两节课,我们将重点探讨如何加速静态资源的下载,还会深入探索 CDN(内容分发网络)的原理。
CDN 作为一种分布式网络架构,能够有效地将内容缓存至离用户更近的节点,从而显著降低延迟、提升下载速度。接下来,我们先从全局的角度出发,学习 CDN 的基本原理、调度机制、组成和度量指标。今天的内容比较多,不过如果你能耐心跟下来,一定会不虚此行。
下节课,我们还会学习 CDN server 的优化手段,并通过动手实践构建一个简单的 CDN 节点,更好地理解其工作原理。

CDN 静态加速原理

我找到了一张示意图,配合图片你会更容易理解 CDN 的原理。
图片来自:what-is-a-cdn
如图所示,Origin Server(源站)是指业务服务器所在的原始站点。如果没有经过 CDN 加速,那么全球用户在下载资源时,需要与该源站进行网络交互。如果使用了 CDN 加速,用户的请求就可以通过距离自己地理位置较近的 CDN Server 来处理。因为 CDN 服务器分布在全球各地,所以用户请求的路径就会大大缩短,进而提升性能。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
  • 解释
  • 总结

1. CDN架构的基本原理和作用:CDN通过分布式网络架构,将内容缓存至离用户更近的节点,以降低延迟、提升下载速度。 2. CDN的常见调度方式:包括本地DNS、HTTP 302重定向、Anycast技术和HTTPS API或SDK,每种方式都有其优劣和适用场景。 3. HTTP缓存规则和控制:CDN服务器遵循一套复杂的HTTP缓存规则,以满足不同场景的需求。 4. CDN的优势和作用:通过CDN加速,用户的请求可以通过距离自己地理位置较近的CDN Server来处理,从而提升性能。 5. CDN的缓存机制:CDN服务器是一个缓存,如果客户端请求到的CDN服务器没有缓存对应的资源,它会向源站请求并缓存该资源,以提高响应速度。 6. CDN的地理位置优势:CDN服务器分布在全球各地,可以根据用户地理位置调度到就近的CDN服务器,从而提高性能。 7. 请求缓存控制:资源的新鲜度相当于食物的保质期,请求的缓存控制表示客户端对资源新鲜度的要求,缓存服务器可以根据这些要求决定是否使用缓存资源回复请求。 8. 再验证:有时候请求方不止期望通过时间维度来判断是否使用缓存,还期望向对方发起再验证,用来校验自己能否继续使用本地的缓存,获取最新的资源。 9. CDN组成:CDN系统主要由管控系统、调度系统和加速节点构成,分别负责节点的运维管理、动态选择最合适的CDN加速节点和缓存资源、处理用户请求并进行数据分发。 10. 度量指标:CDN的性能可以通过度量指标进行评估,如命中率、响应时间、回源率等,这些指标可以帮助评估并对比不同CDN的表现。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《网络架构实战课》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(2)

  • 最新
  • 精选
  • 向东是大海
    CDN回源地址问题:域名 files.example.com(IP 123.123.123.123) 配置了CND加速,将 files.example.com 的 CNAME 指向CDN厂商分配的加速域名 cdn.example.com。现有资源 files.example.com/xx.png 需要回源。CDN厂商会访问哪个URL进行回源? (1)使用域名回源:即,访问files.example.com/xx.png 回源,会造成“循环”,因为files.example.com通过CNAME指向了CDN厂商的cdn.example.com域名。 (2)使用IP回源:即,访问123.123.123.123/xx.png 回源。这种方式绕过DNS解析直接到达源服务器的IP地址,但源服务器(123.123.123.123)上使用Nginx根据不同的域名承载了不同的业务,没有域名信息无法转发到上游服务器。 是不是要再配一个域名 origin-files.example.com 指向源服务器(123.123.123.123),让CDN厂商使用 origin-files.example.com 域名回源?CDN厂商如何才能正确的回源?

    作者回复: 这个问题提的太棒了,而且你的思考已经正确的回答了自己的问题。CDN接入业务的时候除了配置客户端访问的域名,还要配置回源信息。如果用域名回源,需要保证回源域名和客户端访问域名CNAME任意一个层级的域名不能成环。

    2025-03-12归属地:广东
  • 向东是大海
    问题1,CDN 节点本质上是“缓存”还是“存储”,两者本质上的区别: CDN上存放的是热点数据,有过期时间,CDN节点本质上是“缓存”。缓存和存储有本质上的区别:缓存关注的是访问速度,存储关注的是数据持久性。 问题2,调度的维度只是“就近”吗,你会综合哪些维度进行调度? “就近”调度是一个基本维度,还要综合考虑多个其他维度以确保内容分发的效率和性能。包括: (1)根据资源的类型采用不同的调度策略。如视频流媒体、静态网页、动态API等,视频流媒体资源更注重实时性和稳定性,而静态网页资源更注重访问速度和缓存命中率。 (2)根据客户端网络环境采用不同的调度策略。比如,根据用户的互联网接入商(电信、联通等)选择不同的线路。

    作者回复: 不错的思考。

    2025-03-12归属地:广东
收起评论
显示
设置
留言
2
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部
文章页面操作
MAC
windows
作用
esc
esc
退出沉浸式阅读
shift + f
f11
进入/退出沉浸式
command + ⬆️
home
滚动到页面顶部
command + ⬇️
end
滚动到页面底部
⬅️ (仅针对订阅)
⬅️ (仅针对订阅)
上一篇
➡️ (仅针对订阅)
➡️ (仅针对订阅)
下一篇
command + j
page up
向下滚动一屏
command + k
page down
向上滚动一屏
p
p
音频播放/暂停
j
j
向下滚动一点
k
k
向上滚动一点
空格
空格
向下滚动一屏
播放器操作
MAC
windows
作用
esc
esc
退出全屏
⬅️
⬅️
快退
➡️
➡️
快进
空格
空格
视频播放/暂停(视频全屏时生效)