高并发系统设计40问
唐扬
美图公司技术专家
立即订阅
9202 人已学习
课程目录
已更新 38 讲 / 共 40 讲
0/4登录后,你可以任选4讲全文学习。
开篇词 (1讲)
开篇词 | 为什么你要学习高并发系统设计?
免费
基础篇 (6讲)
01 | 高并发系统:它的通用设计方法是什么?
02 | 架构分层:我们为什么一定要这么做?
免费
03 | 系统设计目标(一):如何提升系统性能?
04 | 系统设计目标(二):系统怎样做到高可用?
05 | 系统设计目标(三):如何让系统易于扩展?
06 | 面试现场第一期:当问到组件实现原理时,面试官是在刁难你吗?
演进篇 · 数据库篇 (5讲)
07 | 池化技术:如何减少频繁创建数据库连接的性能损耗?
08 | 数据库优化方案(一):查询请求增加时,如何做主从分离?
09 | 数据库优化方案(二):写入数据量增加时,如何实现分库分表?
10 | 发号器:如何保证分库分表后ID的全局唯一性?
11 | NoSQL:在高并发场景下,数据库和NoSQL如何做到互补?
演进篇 · 缓存篇 (6讲)
12 | 缓存:数据库成为瓶颈后,动态数据的查询要如何加速?
13 | 缓存的使用姿势(一):如何选择缓存的读写策略?
14 | 缓存的使用姿势(二):缓存如何做到高可用?
15 | 缓存的使用姿势(三):缓存穿透了怎么办?
16 | CDN:静态资源如何加速?
加餐 | 数据的迁移应该如何做?
演进篇 · 消息队列篇 (6讲)
17 | 消息队列:秒杀时如何处理每秒上万次的下单请求?
18 | 消息投递:如何保证消息仅仅被消费一次?
19 | 消息队列:如何降低消息队列系统中消息的延迟?
20 | 面试现场第二期:当问到项目经历时,面试官究竟想要了解什么?
用户故事 | 从“心”出发,我还有无数个可能
期中测试 | 10道高并发系统设计题目自测
演进篇 · 分布式服务篇 (9讲)
21 | 系统架构:每秒1万次请求的系统要做服务化拆分吗?
22 | 微服务架构:微服务化后,系统架构要如何改造?
23 | RPC框架:10万QPS下如何实现毫秒级的服务调用?
24 | 注册中心:分布式系统如何寻址?
25 | 分布式Trace:横跨几十个分布式组件的慢请求要如何排查?
26 | 负载均衡:怎样提升系统的横向扩展能力?
27 | API网关:系统的门面要如何做呢?
28 | 多机房部署:跨地域的分布式系统如何做?
29 | Service Mesh:如何屏蔽服务化系统的服务治理细节?
演进篇 · 维护篇 (5讲)
30 | 给系统加上眼睛:服务端监控要怎么做?
31 | 应用性能管理:用户的使用体验应该如何监控?
32 | 压力测试:怎样设计全链路压力测试平台?
33 | 配置管理:成千上万的配置项要如何管理?
34 | 降级熔断:如何屏蔽非核心系统故障的影响?
高并发系统设计40问
登录|注册

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

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

静态资源加速的考虑点

你可能会问:“我们是否也可以使用分布式缓存来解决这个问题呢?”答案是否定的。一般来说,图片和视频的大小会在几兆到几百兆之间不等,如果我们的应用服务器和分布式缓存都部署在北京的机房里,这时一个杭州的用户要访问缓存中的一个视频,那这个视频文件就需要从北京传输到杭州,期间会经过多个公网骨干网络,延迟很高,会让用户感觉视频打开很慢,严重影响到用户的使用体验。
取消
完成
0/1000字
划线
笔记
复制
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
该试读文章来自付费专栏《高并发系统设计40问》,如需阅读全部文章,
请订阅文章所属专栏。
立即订阅
登录 后留言

精选留言(15)

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

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

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

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

    2019-10-23
    2
  • 海罗沃德
    我們公司的靜態資源的域名是公司domain的sub域名,用traceroute命令查看,發現第一層是akamai的一個sub domain,正如老師課裡講的,公司用自己的自域名綁定了akamai的cname
    2019-11-07
    1
  • 蓝魔丶
    老师,还可以通过网络运营商来提高可用性,电信用户走电信网络,网通用户走网通网络
    2019-10-25
    1
  • 刘丹
    请问一个域名可以同时使用2个CDN厂家吗?

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

    2019-10-24
    1
    1
  • leechanx
    最后一幅图,2、3步骤 CDN域名解析服务已经为cname返回CDN边缘节点ip了,这时候进行4、5交互还有用吗?
    就近选ip应该是在CDN域名解析服务里做的吧,即2~3之间
    2019-10-23
    1
  • 骆驼1089
    老师,公司最近在做短视频的相关内容,您能从缓存的角度说一下大致的方向和思路吗?
    2019-12-08
  • 被过去推开
    老师把cdn的访问原理讲的很清楚
    2019-11-29
  • 风中花
    老师好!按照我对本节的理解!我们有个场景就是压力测试站!性能很差!我想做cdn对于真实访问用户有提升!但是对于内部压力测试是不没有提高!压力测试没有通过!开发给出的方案是增加cdn!貌似这样是不合适
    2019-11-24
  • Eric
    第三方CDN厂商提供我们的是域名还是IP地址?

    作者回复: 是域名

    2019-11-05
  • 冰激凌的眼泪
    视频类这种非静态的,如何利用cdn呢?

    作者回复: 视频是静态资源

    2019-11-01
  • 阿卡牛
    同理可得,如果是网站可以在登陆页面预请求一次静态资源
    2019-10-30
  • Geek_e986e3
    自己保证可用的话 我的想法是多个厂商? 或者自己做cdn节点管理 不可用的赶紧切到最近可用的cdn

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

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

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

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

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

    2019-10-23
    6
收起评论
15
返回
顶部