高并发系统设计 40 问
唐扬
美图公司技术专家
49013 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 49 讲
高并发系统设计 40 问
15
15
1.0x
00:00/00:00
登录|注册

16 | CDN:静态资源如何加速?

一课一思
课程小结
如何找到离用户最近的CDN节点
如何让用户的请求到达CDN节点
CDN的关键技术
静态资源加速的考虑点
CDN加速

该思维导图由 AI 生成,仅供参考

你好,我是唐扬。
前面几节课,我带你了解了缓存的定义以及常用缓存的使用姿势,你应该对包括本地缓存、分布式缓存等缓存组件的适用场景和使用技巧有了一定了解了。结合在14 讲中我提到的客户端高可用方案,你会将单个缓存节点扩展为高可用的缓存集群,现在,你的电商系统架构演变成了下面这样:
在这个架构中我们使用分布式缓存对动态请求数据的读取做了加速,但是在我们的系统中存在着大量的静态资源请求:
对于移动 APP 来说,这些静态资源主要是图片、视频和流媒体信息;
对于 Web 网站来说,则包括了 JavaScript 文件、CSS 文件、静态 HTML 文件等等。
具体到你的电商系统来说,商品的图片、介绍商品使用方法的视频等等静态资源都放在了 Nginx 等 Web 服务器上,它们的读请求量极大并且对访问速度的要求很高还占据了很高的带宽,这时会出现访问速度慢带宽被占满影响动态请求的问题,那么你就需要考虑如何针对这些静态资源进行读加速了。

静态资源加速的考虑点

你可能会问:“我们是否也可以使用分布式缓存来解决这个问题呢?”答案是否定的。一般来说,图片和视频的大小会在几兆到几百兆之间不等,如果我们的应用服务器和分布式缓存都部署在北京的机房里,这时一个杭州的用户要访问缓存中的一个视频,那这个视频文件就需要从北京传输到杭州,期间会经过多个公网骨干网络,延迟很高,会让用户感觉视频打开很慢,严重影响到用户的使用体验。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

CDN技术在静态资源加速中扮演着关键角色。本文介绍了静态资源加速的重要性,指出了分布式缓存的局限性,以及CDN通过就近访问提高访问速度的优势。文章详细阐述了如何将用户请求映射到CDN节点,以及通过GSLB实现用户访问最近CDN节点的过程。此外,还介绍了DNS技术在CDN实现中的核心作用,以及如何通过本地缓存和GSLB提高访问速度。作为服务端开发人员,了解CDN的原理和重要性对系统稳定性至关重要。文章提出了思考CDN可用性的问题,鼓励读者深入思考并与作者交流讨论。整体而言,本文深入浅出地介绍了CDN技术的原理和应用,对于服务端开发人员具有重要的参考价值。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《高并发系统设计 40 问》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(34)

  • 最新
  • 精选
  • 小喵喵
    1.cdn不是运维干的事情吗?作为程序员或架构师,只需要了解一下,没必要深入吧? 2.CDN命中率是厂商可以监控的到吗?

    作者回复: 1. 嘿嘿,不是的,我们在做点播系统的时候非常关注CDN的数据 2. 厂商有提供,不过更多要靠我们自己来监控回源的信息

    2019-10-23
    5
    14
  • Li Shunduo
    CDN回源是由CDN触发的还是用户触发的?具体过程是什么

    作者回复: CDN触发,配置CDN的时候需要配置源站地址。

    2019-10-23
    7
  • 潘政宇
    配置CDN后,无论请求静态的还是动态的资源,都是流量先走CDN节点,然后动态资源,CDN再请求源站吗

    作者回复: 是的

    2020-03-16
    6
  • Geek_e986e3
    自己保证可用的话 我的想法是多个厂商? 或者自己做cdn节点管理 不可用的赶紧切到最近可用的cdn

    作者回复: 没错,要监控CDN的运行状态,有问题随时切换

    2019-10-23
    5
  • 饭团
    感谢老师:最近正好在用CDN。用的腾讯云的!我在公司访问某一个资源的时候,大部分情况能命中!但是有时候即使资源没有变化,但是有概率还是会发生回源!不知道这种现象发生的原因是什么?怎么排查!

    作者回复: 是cdn数据过期了吗 可以抓包看看请求包中的header信息

    2019-10-23
    8
    5
  • longslee
    打卡。中了你的甜品毒。。。 老师,问个问题,DNS对应多个IP地址的时候,这种情况APP该怎么缓存呢,该怎么保证它原来的轮训呢。

    作者回复: 可以缓存一个ip的列表

    2019-10-23
    4
  • androus
    大神我想问下CDN缓存怎么更新呢?比如商品的图片在cdn上面,但是某个时候后台运营人员对商品修改了图片,如果没有更新cdn信息的话,那用户访问的还是老的图片

    作者回复: cdn厂家会提供一些删除和更新的接口的

    2019-12-27
    3
  • 刘丹
    请问一个域名可以同时使用2个CDN厂家吗?

    作者回复: 可以的 不过要在代码中控制用哪一家

    2019-10-24
    6
    3
  • 宝仔
    老师在切cdn之前,要对网站的动态资源和静态资源做分离(动静分离),即动态的用动态的域名,静态资源用静态资源的域名

    作者回复: 是的

    2020-03-26
    2
  • Xiang
    高效的抢购秒杀场景是下在秒杀前(几分钟)在CDN放一个很小的脚本(这个需要跟CDN厂商谈),逻辑是根据当前人数产生一个概率,只允许 x% 的人真正进入秒杀,其他的直接返回秒杀结束(当然对这部分人是不合理的)。这样到后端的流量是我们可以接受的流量。

    作者回复: 可以在客户端做一些丢弃,或者lb上做一些限流策略

    2020-02-23
    3
    2
收起评论
显示
设置
留言
34
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部