CDN 回源与CDN 多级缓存原理

news2025/1/11 0:52:31

一、什么是回源

回源是指浏览器在发送请求报文时,响应该请求报文的是源站点的服务器,而不是各节点上的缓存服务器(比如Nginx开启缓存),那么这个过程相对于通过各节点上的缓存服务器来响应的话就称作为回源。回源的请求或流量太多的话,有可能会让源站点的服务器承载着过大的访问压力,进而影响服务的正常访问。

回源域名一般是 CDN 领域的专业术语,通常情况下,是直接用IP进行回源的,但是如果客户源站有多个IP,并且 IP 地址会经常变化,对于CDN厂商来说,为了避免经常更改配置(回源IP),会采用回源域名方式进行回源,这样即使源站的IP变化了,也不影响原有的配置。

常规的CDN都是回源的。即:当有用户访问某一个URL的时候,如果被解析到的那个CDN 节点没有缓存响应的内容,或者是缓存已经到期,就会回源站去获取。如果没有人访问,那么 CDN 节点不会主动去源站拿的。

源站内容有更新的时候,源站可以主动把内容推送到CDN节点。

CDN 本来是给我们的网站加速的,但是有时会因为不合适的回源策略给服务器带来负担,只有选择正确的策略才能给自己的网站带来更高的访问效率。

二、CDN回源率计算方法

回源比分为回源请求数比例及回源流量比例两种:

1、回源请求数比

统计数据来自所有边缘节点上的请求记录,其中,对于没有缓存或缓存过期(可缓存)的请求以及不可缓存的请求,均计入回源请求中,其他直接命中缓存的,则为命中请求。

2、回源流量比

回源流量是回源请求文件大小产生的流量和请求本身产生的流量 回源流量比=回源流量/回源流量+用户请求访问的流量

三、CDN相关知识

1、CDN概念

CDN的全称是Content Delivery Network,即内容分发网络。其基本思路是尽可能避开互联网上有可能影响数据传输速度和稳定性的瓶颈和环节,使内容传输的更快、更稳定。通过在网络各处放置节点服务器所构成的在现有的互联网基础之上的一层智能虚拟网络,CDN系统能够实时地根据网络流量和各节点的连接、负载状况以及到用户的距离和响应时间等综合信息将用户的请求重新导向离用户最近的服务节点上。其目的是使用户可就近取得所需内容,解决 Internet网络拥挤的状况,提高用户访问网站的响应速度。

2、CDN工作方法

客户端浏览器先检查是否有本地缓存是否过期,如果过期,则向CDN边缘节点发起请求,CDN边缘节点会检测用户请求数据的缓存是否过期,如果没有过期,则直接响应用户请求,此时一个完成http请求结束;如果数据已经过期,那么CDN还需要向源站发出回源请求(back to the source request),来拉取最新的数据。CDN的典型拓扑图如下:

 

3、CDN层级划分

CDN系统中,直接面向用户,负责给用户提供内容服务的的Cache设备都部署在整个 CDN网络的边缘位置,所以将这一层称为边缘层

CDN系统中,中心层负责全局的管理和控制,同时也保存了最多的内容Cache。在边缘层设备未能命中Cache时,需要向中心层设备请求;而中心层未能命中时,则需要向源站请求。不同的CDN系统设计存在差异,中心层可能具备用户服务的能力,也可能只会向下一层提供服务。

如果CDN系统比较庞大,边缘层向中心层请求内容太多,会造成中心层负载压力太大。此时,需要在中心层和边缘层之间部署一个区域层,负责一个区域的管理和控制,也可以提供一些内容Cache供边缘层访问。

四、CDN缓存

浏览器本地缓存失效后,浏览器会向CDN边缘节点发起请求。类似浏览器缓存,CDN边缘节点也存在着一套缓存机制。

1、CDN缓存的缺点

CDN的分流作用不仅减少了用户的访问延时,也减少的源站的负载。但其缺点也很明显:当网站更新时,如果CDN节点上数据没有及时更新,即便用户再浏览器使用Ctrl +F5的方式使浏览器端的缓存失效,也会因为CDN边缘节点没有同步最新数据而导致用户访问异常。

2、CDN缓存策略

CDN边缘节点缓存策略因服务商不同而不同,但一般都会遵循http标准协议,通过http响应头中的Cache-control: max-age (max-age以秒为单位) 的字段来设置CDN边缘节点数据缓存时间。

当客户端向CDN节点请求数据时,CDN节点会判断缓存数据是否过期,若缓存数据并没有过期,则直接将缓存数据返回给客户端;否则,CDN节点就会向源站发出回源请求,从源站拉取最新数据,更新本地缓存,并将最新数据返回给客户端。

CDN服务商一般会提供基于文件后缀、目录多个维度来指定CDN缓存时间,为用户提供更精细化的缓存管理。

CDN缓存时间会对“回源率”产生直接的影响。若CDN缓存时间较短,CDN边缘节点上的数据会经常失效,导致频繁回源,增加了源站的负载,同时也增大的访问延时;若CDN缓存时间太长,会带来数据更新时间慢的问题。开发者需要增对特定的业务,来做特定的数据缓存时间管理。

3、CDN缓存刷新

CDN边缘节点对开发者是透明的,相比于浏览器Ctrl+F5的强制刷新来使浏览器本地缓存失效,开发者可以通过CDN服务商提供的“刷新缓存”接口来达到清理CDN边缘节点缓存的目的。这样开发者在更新数据后,可以使用“刷新缓存”功能来强制CDN节点上的数据缓存过期,保证客户端在访问时,拉取到最新的数据。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/567650.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Mac 原神电脑版下载安装使用教程,MacBook 上也可以玩原神了

最近发现了一个很棒的工具,他可以让你的 Mac 苹果电脑运行原神,而且画质和流畅度都是在线的,今天分享给大家 软件名字叫 playCover ,根据作者的介绍这款软件最初就是国外的一位博主想在 Mac 上玩原神特意开发的一款软件&#xff…

Faster R-CNN网络架构详解和TensorFlow Hub实现(附源码)

文章目录 一、RPN网络1. RPN网络简介2. backbone网络简介 二、Faster R-CNN网络架构1. Faster R-CNN网络简介2. 基于TensorFlow Hub实现Faster R-CNN 前言:Faster R-CNN的简介见 上一篇文章 一、RPN网络 1. RPN网络简介 RPN网络全称Region Proposal Network&#…

【星戈瑞】BODIPY-530/550氟化硼二吡咯荧光染料

BODIPY是一种荧光染料,其分子结构稳定、荧光强度高、荧光寿命长、光谱范围广,因此在许多领域都有应用。在生物医学领域,BODIPY作为荧光探针,可用于细胞成像、生物分子探测、药物筛选等方面。例如,一些研究者将BODIPY修…

如何在华为OD机试中获得满分?Java实现【计算某字符出现次数】一文详解!

✅创作者:陈书予 🎉个人主页:陈书予的个人主页 🍁陈书予的个人社区,欢迎你的加入: 陈书予的社区 🌟专栏地址: Java华为OD机试真题(2022&2023) 文章目录 1. 题目描述2. 输入描述3. 输出描述…

今天面了个字节拿23k出来的小伙,让我见识到了什么才是天花板...

2023年堪称大学生就业最难的一年,应届毕业生人数是1158万,再次刷新记录。 但是我观察到一个数据,那就是已经就业的毕业生中,计算机通信等行业最受毕业生欢迎! 计算机IT行业薪资高,平均薪资是文科其他岗位的…

Java之旅(二)

Java安装 检查您是否在 Windows PC 上安装了 Java,请在开始栏中搜索 Java 或在命令提示符 (cmd.exe) 中键入以下内容:java -version 在 Windows 上安装 Java: 转到“系统属性”(可以在控制面板 > 系统和安全 > 系统 >…

android aidl及binder基础知识总结

1、什么是binder binder是android framework提供的,用于跨进程方法调用的机制,具有安全高效等特点。 我们知道,在 Android 系统中,每个应用程序都运行在一个独立的进程中,各个进程之间需要进行数据交换和调用&#x…

元宇宙应用领域-医疗

元宇宙(Metaverse)是一个虚拟空间,用户可以通过数字技术和设备在其中生活和工作。元宇宙由一系列相关的技术和应用组成,包括区块链、虚拟现实、增强现实、人工智能、网络安全、大数据和云计算等。 元宇宙是一种新型的虚拟空间&am…

【加解密】bcryptjs | CryptoJS | JSEncrypt | node-rsa 加密| 解密 | RSA | ASE | MD5

加解密 1、 bcryptjs 解密 - 只可加密,比对密码,不可解密 下载 npm i bcryptjs 作用:字符串加密,已加密的字符串不可破解,只可比对。优点:加密的字符不可解密缺点:已加密的字符不可解密&#…

【TI毫米波雷达笔记】IWR6843AOPEVM开箱功能测试

【TI毫米波雷达笔记】IWR6843AOPEVM开箱功能测试 我用的是IWR6843AOPEVM-G 相关资源可以在ti官网下载 要用的软件是 TI官方上位机 mmWave_Demo_Visualizer 可以用网页版 也可以用软件包 建议先上网页版看看版本支不支持对应的板子 网页版: dev.ti.com/gallery/…

CMake之安装

目录 公共选项安装目标安装文件安装目录安装导出 公共选项 install有多个签名,这些签名公用的选项有以下: DESTINATION:指定文件要安装的目录,可以是相对路径或绝对路径。 相对路径:会使用 CMAKE_INSTALL_PREFIX 作为…

rttread-nano 使用记录:rt_kprintf函数格式化打印无法左对齐

rttread-nano 使用记录:rt_kprintf函数格式化打印无法左对齐 今天用rt_kprintf函数打印输出一个表格,为了表格好看每一列我都使用格式化参数-负号符号设置为了左对齐,但是发现无法打印,也无法打印浮点数,换成微库的pri…

通过注册表显示和隐藏“我的电脑”、“回收站”等图标

注册表路径: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\HideDesktopIcons\NewStartPanel 其中{208D2C60-3AEA-1069-A2D7-08002B30309D}是我的电脑,值的类型为REG_DWORD,改为0后隐藏,1代表显示。 其…

Try ‘apt --fix-broken install’ with no packages解决办法

在Ubuntu中用apt-get安装软件,系统报出Unmet dependencies错误。 Unmet dependencies. Try ‘apt --fix-broken install’ with no packages (or specify a solution) 解决方案如下: sudo apt --fix-broken install sudo apt-get update sudo apt-get u…

建筑专业应届生零基础想学习数据分析,职业发展前景如何?能学会吗?

建筑应届生零基础想学习数据分析,职业发展前景如何?能学会吗? 当然是能学会的,但如果想要有发展前景,不仅是会数据分析而已,更需要实战能力,能够结合不同的业务进行分析,掌握各种常见…

openFast中的陆上风电机组5MW_Land_DLL_WTurb参数详解

文章目录 一、openFAST是什么?二、参数截图三、参数详解 一、openFAST是什么? openFAST是一种开放源代码的工具,为风能工程师提供了用于模拟和设计风力涡轮机的框架。它可以计算风力涡轮机在各种环境条件下的性能,并提供对风力涡…

HTML、CSS、 JavaScript介绍(二)

CSS 指层叠样式表 (Cascading Style Sheets),CSS定义如何显示 HTML 元素。HTML 标签原本被设计为用于定义文档内容,样式表定义如何显示 HTML 元素,就像 HTML 中的字体标签和颜色属性所起的作用那样。样式通常保存在外部的 .css 文件中。我们只…

「GPT实战」GPT接入直播间实现虚拟人互动

摘要 ChatGPT和元宇宙都是当前数字化领域中非常热门的技术和应用。结合两者的优势和特点,可以探索出更多的应用场景和商业模式。例如,在元宇宙中使用ChatGPT进行自然语言交互,可以为用户提供更加智能化、个性化的服务和支持;在Ch…

清除浮动的方法

目录 清除浮动 2.1 清除浮动的方法 — ① 直接设置父元素高度 2.2 清除浮动的方法 — ② 额外标签法 2.3 清除浮动的方法 — ③ 单伪元素清除法 2.4 清除浮动的方法 — ④ 双伪元素清除法 2.5 清除浮动的方法 — ⑤ 给父元素设置overflow : hidden 清除浮动 ➢ 含义&#…

springboot+java大学生新生入学报到报道系统+jsp004

新生报到系统分为学院管理员,宿舍管理员,财务管理员,辅导员,学生五种登录身份 学院管理员界面登入后台后有个人信息的展示,可对余下的四种身份信息进行增删改查,可进行对高考信息的导入导出,对报…