CDN 带来这些性能优化

前言

CDN的全称是 Content Delivery Network,即内容分发网络。CDN 是构建在网络之上的内容分发网络,依靠部署在各地的边缘服务器,通过中心平台的负载均衡、内容分发、调度等功能模块,使用户就近获取所需内容,降低网络拥塞,提高用户访问响应速度和命中率。CDN 的关键技术主要有内容存储和分发技术。—— 科学百科
在这里插入图片描述

CDN 存在的意义:

为了不让网络拥塞成为互联网发展的障碍。


举个例子

在讲 CDN 之前我们先看个生活实例:

在淘宝购物

我们在淘宝购物,大部分个人卖家只是在一个地方发货,江浙沪以外的地方好像收货都比较慢。

在京东购物

而我们在京东上买自营产品的话,它会根据我们的收货地点,在全国范围内找离我们最近、送达最快的仓库,不管我们在江浙沪,还是新疆西藏内蒙古,我们的收货时间都会大大减少。京东的物流体系就类似于 CDN。

从上面这个例子我们可以大致了解 CDN 的基本原理,即将相关静态资源放在各地的 CDN 服务器。

CDN 的优势
  • CDN 节点解决了跨运营商和跨地域访问的问题,访问延时大大降低;
  • 大部分请求在 CDN 边缘节点完成,CDN 起到了分流作用,减轻了源站的负载;
  • 降低“广播风暴”的影响,提高网络访问的稳定性;节省骨干网带宽,减少带宽需求量。

访问速度快是电商网站取胜的必要法宝之一。

CDN 的核心点有两个: 一个是缓存,一个是回源。

缓存

将从根服务器请求来的资源按要求缓存。

回源
  • “命中”就是指用户访问的资源恰好在缓存系统里,可以直接返回给用户;“回源”则正相反,缓存里没有,必须用代理的方式回源站取
  • 当有用户访问某个资源的时候,如果被解析到的那个 CDN 节点没有缓存响应的内容,或者是缓存已经到期,就会回源站去获取。没有人访问,CDN 节点不会主动去源站请求资源。
关键技术
  • 内容发布:它借助于建立索引、缓存、流分裂、组播(Multicast)等技术,将内容发布或投递到距离用户最近的远程服务点(POP)处;
  • 内容路由:它是整体性的网络负载均衡技术,通过内容路由器中的重定向(DNS)机制,在多个远程 POP 上均衡用户的请求,以使用户请求得到最近内容源的响应;
  • 内容交换:它根据内容的可用性、服务器的可用性以及用户的背景,在POP的缓存服务器上,利用应用层交换、流分裂、重定向(ICP、WCCP)等技术,智能地平衡负载流量;
  • 性能管理:它通过内部和外部监控系统,获取网络部件的状况信息,测量内容发布的端到端性能(如包丢失、延时、平均带宽、启动时间、帧速率等),保证网络处于最佳的运行状态。

CDN & 静态资源

静态资源本身具有访问频率高、承接流量大的特点,因此静态资源加载速度始终是前端性能的一个非常关键的指标。CDN 是静态资源提速的重要手段。

淘宝

在这里插入图片描述

京东

在这里插入图片描述

掘金

在这里插入图片描述

  • X-Cache-Lookup:Hit From MemCache  表示命中CDN节点的内存
  • X-Cache-Lookup:Hit From Disktank    表示命中CDN节点的磁盘
  • X-Cache-Lookup:Hit From Upstream   表示没有命中CDN
  • 我们随手打开一个网站点开一个静态资源,可以看到它都是从 CDN 服务器上请求来的。可以看出 “静态资源走 CDN” 是最佳实践

CDN & Cookie

在这里插入图片描述

  • 我们知道 Cookie 和域名是紧密联系的。即同一个域名下的所有请求,都会携带一个相同的 Cookie(设置不当就会非常大)

    静态资源往往并不需要 Cookie

  • 携带的认证信息等,静态资源一般是不需要的。把静态资源和主页面置于不同的域名下,就可以完美地避免请求中携带不必要的 Cookie。
  • 这也是 CDN 带来的另一个好处。
  • 最后给大家放一张直观图,给大家对比下 CDN 服务部署前后的区别:

在这里插入图片描述

CDN 的负载均衡

  • 全局负载均衡(Global Sever Load Balance)一般简称为 GSLB,它是 CDN 的“大脑”,主要的职责是当用户接入网络的时候在 CDN 专网中挑选出一个“最佳”节点提供服务,解决的是用户如何找到“最近的”边缘节点,对整个 CDN 网络进行“负载均衡”
  • GSLB 最常见的实现方式是“DNS 负载均衡”
    在这里插入图片描述
  • 权威 DNS 返回的不是 IP 地址,而是一个 CNAME 别名记录,指向的就是 CDN 的 GSLB
  • 本地 DNS 就会向 GSLB 再发起请求,这样就进入了 CDN 的全局负载均衡系统,开始“智能调度”,主要的依据有这么几个
    在这里插入图片描述
  • GSLB 把这些因素综合起来,用一个复杂的算法,最后找出一台“最合适”的边缘节点,把这个节点的 IP 地址返回给用户,用户就可以“就近”访问 CDN 的缓存代理了

转自 https://juejin.cn/post/6844903892849786893

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值