28 CDN

Posted by CodingWithAlice on May 6, 2021

28 CDN

  • 总结

    1、由于 客观地理距离 的存在,直连网站访问速度会很慢,所以就出现了 CDN

    2、CDN 构建了全国、全球级别的专网,让用户 就近访问专网里的边缘节点 ,降低了传输延迟,实现了网站加速 3、**全局负载均衡 GSLB ** 是 CDN 的大脑,使用 DNS 负载均衡技术,智能调度边缘节点提供服务

    4、缓存系统 是 CDN 的心脏,使用 HTTP 缓存代理技术,缓存命中就返回给用户,否则就要回源

定义

专门为解决长距离上网络访问速度慢而诞生的一种网络应用服务 – 内容分发网络

  • CDN 的最核心原则是 就近访问 – 用户访问的是 边缘节点

    image-20210506173434360

  • CDN 都能加速什么样的内容呢?

    比如超文本、图片、视频、应用程序安装包等等。

    资源按照 是否可缓存 又分为 静态资源动态资源只有静态资源 才能够被缓存加速、就近访问,而动态资源只能由源站实时生成,即使缓存了也没有意义

CDN的组成

有两个关键组成部分:全局负载均衡缓存系统

全局负载均衡GSLB:

  • 职责:当用户接入网络的时候在 CDN 专网中 挑选出一个最佳节点提供服务

  • 解决问题:用户如何找到最近的边缘节点,对整个 CDN 网络进行负载均衡

  • 实现方式:DNS 负载均衡

    –> 接入CDN后,域名系统 DNS 返回的不是 IP 地址,而是一个 CNAME别名记录,指向 CDN 的 GSLB

    –> 因为没拿到 IP 地址,于是 本地 DNS 就会向 CDN - GSLB 再发起请求,这样就进入了 CDN 的全局负载均衡系统,开始智能调度:

    1、看用户的 IP 地址,查表得知地理位置,找相对最近的边缘节点

    2、看用户所在的运营商网络,找相同网络的边缘节点

    3、检查边缘节点的负载情况,找负载较轻的节点

    4、其他,比如节点的健康状况、服务能力、带宽、响应时间等

    缓存系统

    缓存系统只能有选择地缓存那些最常用的那些资源。

补充两个概念:

  • 命中 – 指用户访问的资源恰好在缓存系统里,可以直接返回给用户

  • 回源 – 正相反,缓存里没有,必须用代理的方式回源站取

  • 怎么样才能尽可能地 提高命中率、降低回源率 呢?

    1、存储系统:硬件用高速 CPU、大内存、万兆网卡,再搭配 TB 级别的硬盘和快速的 SSD。软件方面则不断“求新求变”,各种新的存储软件都会拿来尝试

    2、划分层次:分成一/二级缓存节点,一级缓存配置高一些,直连源站,二级缓存配置低一些,直连用户。回源的时候二级缓存只找一级缓存,一级缓存没有才回源站,这样最终“扇入度”就缩小了,可以有效地减少真正的回源

    3、高性能的缓存服务