周志明的软件架构课
周志明
博士,远光软件研究院院长,《深入理解 Java 虚拟机》《凤凰架构》等书作者
54203 人已学习
免费领取
课程目录
已完结/共 74 讲
架构师的视角 (24讲)
周志明的软件架构课
15
15
1.0x
00:00/00:00
登录|注册

19 | 如何利用内容分发网络来提高网络性能?

你好,我是周志明。
前面几讲中,我给你介绍了客户端缓存、域名解析、链路优化这三种与客户端关系较密切的传输优化机制。这节课,我们来讨论一个针对这三种机制的经典综合运用案例:内容分发网络(CDN,Content Distribution Network 或 Content Delivery Network)。
内容分发网络是一种十分古老的应用,你应该也听说过它的名字,多少知道它是用来做什么的。简单理解的话,CDN 其实就是做“内容分销”工作的。
我给你举个例子吧。假设,我们把某个互联网系统比喻为一家开门营业的企业,那内容分发网络就是它遍布世界各地的分支销售机构。如果一位客户要买一块 CPU,我们要是订机票飞到美国 Intel 总部去采购,那肯定是不合适的,到本地电脑城找个装机铺才是正常人的做法。所以在这个场景里,内容分发网络就相当于电脑城那吆喝着 CPU 三十块钱一斤的本地经销商。
然后,内容分发网络又是一种十分透明的应用,一般不需要我们参与它的工作过程。所以我想,如果你没有自己亲身使用和专门研究过,那可能就不太清楚它是如何为互联网站点分流的,也不太会注意到它的工作原理是什么。
实际上,内容分发网络的工作过程,主要涉及到路由解析、内容分发、负载均衡和它所能支持的应用内容四个方面。今天这节课,我们先来了解内容分发网络可以解决哪些网络传输问题,也就是先着重探讨除负载均衡以外的其他三个方面的工作。在下一讲中,我会专门跟你讨论负载均衡的内容。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

内容分发网络(CDN)是一种古老应用,通过分布在世界各地的节点来分发内容,解决网络传输中的带宽、时延等问题。CDN的工作过程涉及路由解析、内容分发、负载均衡和应用内容支持等方面。互联网系统的速度主要取决于网站服务器和用户客户端的带宽、不同运营商之间的互联节点带宽以及物理链路传输时延。CDN能够改善这些问题,为互联网系统解决跨运营商、跨地域物理距离所导致的时延问题,同时分流网站流量带宽,减轻服务器负担。CDN的核心价值在于内容分发,通过主动分发和被动分发两种方式,CDN解决了如何获取源站资源和如何管理(更新)资源的问题。 CDN的应用范围已经远远超越了最初的设计目标,它不仅能加速静态资源的分发,还能提供安全防御、协议升级、状态缓存、资源修改、访问控制和注入功能等多种应用。CDN作为互联网系统的加速器和多级分流系统的优秀范例,为系统性能提升和功能增强提供了有效的解决方案。CDN的运作原理和功能特点极为透明,甚至可以在开发者不知情的情况下完成,因此对于读者来说,了解CDN的工作原理和应用场景将有助于构建更加健壮、能应对更大流量的系统。 总的来说,CDN是一种古老而广泛应用的分流系统,它能为互联网系统提供性能上的加速,同时也能帮助增强许多功能。通过学习CDN的原理和应用,读者可以对CDN有更全面的理解,同时也可以将透明多级分流的思路应用于不同的场景,构建出更加健壮的系统。

该试读文章来自《周志明的软件架构课》,如需阅读全部文章,
请先领取课程
免费领取
登录 后留言

全部留言(10)

  • 最新
  • 精选
  • 大力水手Jerry
    一课一思:分流的常规方法有两种,一是类CDN,扩展内容源,使用更多的源来提供服务,二是类DNS引入中间层,通过中间层的代理和缓存来降低客户端对内容源的压力。常规的四层和7层负载均衡服务器就是采用(水平)扩容的方式,让更多的服务器来分散客户的请求;Redis等缓存服务器,则是引入中间层来降低客户端对后端持久数据源的压力。
    2021-03-17
    7
  • zhanyd
    CDN这么好,原来CDN服务是要收费的。。。 在网上看到华为云CDN主要的应用场景,可以帮助我们更好的理解(非广告): 网站加速:CDN网络能够对加速域名下的静态内容提供良好的加速服务。支持自定义缓存规则,用户可以根据数据需求设置缓存过期时间,缓存格式包括但不限于zip、exe、wmv、gif、png、bmp、wma、rar、jpeg、jpg等。 文件下载加速:适用于使用http/https文件下载业务的网站、下载工具、游戏客户端、APP商店等。 点播加速:适用于提供音视频点播服务的客户。通过分布在各个区域的CDN节点,将音视频内容扩展到距离用户较近的地方,随时随地为用户提供高品质的访问体验。 全站加速:适用于各行业动静态内容混合,含较多动态资源请求(如asp、jsp、php等格式的文件)的网站。 貌似CDN只能缓存静态资源,不能缓存类似jsp,php等动态页面。
    2020-12-31
    2
    6
  • Andrew陈海越
    CDN内容分发网络(Content Distribution Network)是 客户端缓存、链路优化、域名解析三种机制 综合运营的经典案例 CDN的作用就是【内容分销】,分 路由请求,负载均衡,内容分发和应用形式 四块。 路由请求 CDN改变了DNS(域名解析服务)的方式。 使用后 当你在CDN服务商上注册站点后,会得到一个服务商给予的CNAME,使用该CNAME注册为域名管理的CNAME。 用户第一次请求时,DNS服务商会把CNAME交给本地DNS,而能够解析该CNAME的只有CDN服务商架设的权威DNS,该权威DNS会返回另一个唯一的CNAME给本地DNS。 本地DNS拿到后,重新请求权威DNS,这时CDN服务商就会把在全国各地能够提供缓存服务的节点ip返回。后续本地DNS请求时,就会使用该ip来替代源站ip。 内容分发 第一种:主动分发(Push) 场景:一般是用于网站要预载大量资源的场景 特点:对源站并不是透明的,只对用户一侧单向透明 第二种:被动回源(Pull) 场景:小型站点使用 CDN 服务的主流选择 特点:双向透明 负载均衡(后面讲) 应用形式 * 本职工作 加速静态资源 * 防御DDos攻击 * 修改资源形式,压缩等 * 访问控制 * 诸如资源
    2022-10-11归属地:湖南
    1
  • 文进
    请教一下老师,源站的静态资源走cdn,那源站如果还包含动态资源了,访问这些url岂不是也都会走了cdn去了?我看cdn路由规则应该是整个ip都路由到了cdn服务器。。是不是源站只能是静态资源服务器,即我们只能将静态资源的服务器的源站注册到cdn?
    2022-06-08
    1
    1
  • Johar
    有了cdn之后,测试起来需要怎么操作?是不是必须要实际的cdn环境?
    2021-10-18
    1
  • -只是小小配角_
    所谓的CDN加速是不是就是指源站的内容分发到CDN中,CDN同步至各个地区的节点,用户访问的时候通过最近的节点获取数据,主要是缩短了用户访问链路。
    2021-01-19
    2
    1
  • 爪哇咖啡
    有些文件流传输的系统,会采用多级分流的特征,客户端分布在不同物理位置。
    2023-04-01归属地:北京
  • geek
    cdn和反向代理的区别在哪里?感觉两者差不多。
    2022-01-18
    1
  • 平凡中的不平凡
    NG算一个?
    2021-07-10
  • 吴钩
    但网站相当多的内容还是动态的,需要应用服务器计算的,这部分流量都会到源站吧。我觉得在高并发的场景还是给源站带来不小的压力的。
    2021-04-12
    2
收起评论
显示
设置
留言
10
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部