ITPub博客

首页 > 自动化运维 > > [FE 资源链路] 1 - 资源访问优化(全量) - CDN加速 / 负载均衡 / 缓存刷新 预热

[FE 资源链路] 1 - 资源访问优化(全量) - CDN加速 / 负载均衡 / 缓存刷新 预热

作者:浪花小雨滴 时间:2020-05-25 15:15:12 0 删除 编辑

[FE 资源链路] 1 - 资源访问优化(全量) - CDN加速 / 负载均衡 / 缓存刷新 预热

[FE 资源链路] 2 - 资源访问优化 - 补丁 + 本地缓存

[FE 资源链路] 3 - CDN返回资源异常 / 分析 / 解决

[FE 链路] 4 - 针对整个链路 性能优化

[FE 链路] 5 - 浏览器渲染机制 / reflow repaint / async defer

[FE 链路] 6 - 前端性能指标


  • CDN是什么? CDN加速是什么?
  • CDN工作原理?
  • CNAME?
  • 负载均衡?
  • 源站? 缓存节点?

1- 什么是CDN?

Content Delivery Network 内容分发网络,将源站内容 缓存到 全球各节点服务器上。

好处: 用户【就近读取内容】, 提高访问速度, 减轻源站压力。

原理:

  • 节点: 缓存服务器 (CDN 边缘节点)。
  • CDN给用户分配 就近的 缓存服务器。

2- 工作原理?

负载均衡

  • 全局负载均衡 GSLB: Global Server Load Balancing
  • 区域负载均衡 ESLB: Elastic Server Load Balancing
负载均衡理解:
相当于团队协作,为了同一个目标,不同位置上的队员统一听一个领导的分配。
大的任务 拆解成 小任务, 大家各司其职。

例如: 
我们有国家主席,每个省有省长。省长要听国家主席的。
对于垃圾分类这个事情,全局负载均衡(国家主席)下达命令给各个省的省长
省长下达命令给市长,一层层的到达基层。
最后每个地区都垃圾分类了,任务完成了,这样效率极高。
这样的分配,让任务不会就一个人干,大家都平均的分担事情。

所以全局负载均衡: 整个事件叫做全局负载均衡,局部小范围(某地区)负载均衡叫做区域负载均衡。
使用场景: 
a.baidu.com 是访问 CDN IP地址的.
但是有一天 CDN IP地址变了, 你让所有人都改吗?不现实啊

所以用 【域名1 => 域名2 => IP】域名2相当于中间层
IP可以随便的变,域名2不会变, 域名1 对 域名2访问。
好处是: 稳定,不会因为IP变了,资源访问不到
坏处是: 需要一层解析。
好处 > 坏处。


思考: 用户就近原则获取资源,那就是DNS解析给他分配离他最近的机器的IP地址。

  • 智能调度DNS
  • 缓存功能 (CDN加速)

DNS 服务器, 根据用户IP, 将域名解析成 最近缓存服务器IP地址,实现就近访问。

1. 北京用户访问 http://a.baidu.net/xxx.css style资源
2. DNS解析 => 获取 IP
   (ps: DNS系统将域名解析权 通过CNAME, 交给CDN专门的DNS服务器)
   
   DNS => 从本地服务器 缓存中获取
   if 没有: => 则去DNS专门CDN解析服务器去找
   else 有
   return【CDN全局负载均衡设备的 IP地址】

3. 访问【CDN全局负载均衡设备的 IP地址 + 并带上用户IP】, 检查到北京最近  => 【区域负载均衡】

4. 【北京区域负载均衡】=> 【北京节点/北京缓存服务器/CDN边缘节点 IP】
   - 找一台机器离用户最近的
   - 这台机器是否有 style资源
   - 根据机器承载力,该机器是否有能力返回 style资源
   return【北京节点/北京缓存服务器/CDN边缘节点 IP】

5. 用户访问 => 【北京节点/北京缓存服务器/CDN边缘节点 IP】
   - 该节点有, 则直接返回。
   - 该节点没有, 则去源站返回资源。

3- 以上总结

  1. 以上是【CDN加速的工作原理】利用 CDN 缓存服务器做到的,就近访问原则。
  2. 智能调度DNS: 返回IP 即 分配给用户最近的 CDN缓存服务器IP。
  3. 缓存功能: 先去访问CDN缓存服务器,不行再回源访问。

4- 缓存刷新 和 缓存预热

步骤说明:

  • 你构建后的代码, 通过网关发布到 源站。
  • 1- 北京用户,访问到北京节点,如果北京CDN缓存节点无新发布资源,则去源站访问。源站返回资源,=> 并同步给北京节点 => 返回用户
  • 2- 有该资源CDN加速了,不用访问回源资源了,北京节点有该资源,直接返回给用户。

缓存刷新

  • 新资源上传,在CDN缓存节点旧内容,会强制过期。用户访问时候,节点回去源站访问,返回给用户,并缓存下来。

缓存预热

  • 新资源上传,在CDN缓存节点旧内容,会强制过期。源站会将资源主动缓存给CDN缓存节点。用户访问时候,还是在CDN缓存节点访问的。

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/31537575/viewspace-3162861/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2018-05-16

  • 博文量
    4259
  • 访问量
    39983