面试官:如何理解CDN?说说实现原理?

news2024/12/25 12:25:44

一、是什么

CDN (全称 Content Delivery Network),即内容分发网络

构建在现有网络基础之上的智能虚拟网络,依靠部署在各地的边缘服务器,通过中心平台的负载均衡、内容分发、调度等功能模块,使用户就近获取所需内容,降低网络拥塞,提高用户访问响应速度和命中率。CDN 的关键技术主要有内容存储和分发技术

简单来讲,CDN就是根据用户位置分配最近的资源

于是,用户在上网的时候不用直接访问源站,而是访问离他“最近的”一个 CDN 节点,术语叫边缘节点,其实就是缓存了源站内容的代理服务器。如下图:

二、原理分析

在没有应用CDN时,我们使用域名访问某一个站点时的路径为

用户提交域名→浏览器对域名进行解释→DNS 解析得到目的主机的IP地址→根据IP地址访问发出请求→得到请求数据并回复

应用CDN后,DNS 返回的不再是 IP 地址,而是一个CNAME(Canonical Name ) 别名记录,指向CDN的全局负载均衡

CNAME实际上在域名解析的过程中承担了中间人(或者说代理)的角色,这是CDN实现的关键

负载均衡系统

由于没有返回IP地址,于是本地DNS会向负载均衡系统再发送请求 ,则进入到CDN的全局负载均衡系统进行智能调度:

  • 看用户的 IP 地址,查表得知地理位置,找相对最近的边缘节点
  • 看用户所在的运营商网络,找相同网络的边缘节点
  • 检查边缘节点的负载情况,找负载较轻的节点
  • 其他,比如节点的“健康状况”、服务能力、带宽、响应时间等

结合上面的因素,得到最合适的边缘节点,然后把这个节点返回给用户,用户就能够就近访问CDN的缓存代理

整体流程如下图:

缓存代理

缓存系统是 CDN 的另一个关键组成部分,缓存系统会有选择地缓存那些最常用的那些资源

其中有两个衡量CDN服务质量的指标:

  • 命中率:用户访问的资源恰好在缓存系统里,可以直接返回给用户,命中次数与所有访问次数之比
  • 回源率:缓存里没有,必须用代理的方式回源站取,回源次数与所有访问次数之比

缓存系统也可以划分出层次,分成一级缓存节点和二级缓存节点。一级缓存配置高一些,直连源站,二级缓存配置低一些,直连用户

回源的时候二级缓存只找一级缓存,一级缓存没有才回源站,可以有效地减少真正的回源

现在的商业 CDN命中率都在 90% 以上,相当于把源站的服务能力放大了 10 倍以上

三、总结

CDN 目的是为了改善互联网的服务质量,通俗一点说其实就是提高访问速度

CDN 构建了全国、全球级别的专网,让用户就近访问专网里的边缘节点,降低了传输延迟,实现了网站加速

通过CDN的负载均衡系统,智能调度边缘节点提供服务,相当于CDN服务的大脑,而缓存系统相当于CDN的心脏,缓存命中直接返回给用户,否则回源

参考文献

  • https://zh.wikipedia.org/wiki/內容傳遞網路
  • https://juejin.cn/post/6844903890706661389#heading-5
  • https://blog.csdn.net/lxx309707872/article/details/109078783

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

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

相关文章

51系列—基于51单片机的电子万年历设计

本文主要介绍基于51单片机的电子万年历设计 前言 电子万年历是单片机系统的一个应用,由硬件和软件相配合使用。硬件由主控器、时钟电路、温度检测电路、显示电路、键盘接口5个模块组成。主控模块用AT89C52、时钟电路用时钟芯片DS1302、显示模块用LED数码管、温度检…

【CGSSA-BP预测】基于混合混沌-高斯变异-麻雀算法优化BP神经网络回归预测研究(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

关于ibatis的一些用法——1(基本语法)

关于ibatis的一些用法——1(基本语法) 1. 前言1.1 唠叨1.2 官网1.2.1 官网地址1.2.2 价值文档1.2.2.1 Data Mapper1.2.2.2 其他 1.3 价值 IT技术问答网站 2. 基本语法2.1 关于 in 的用法2.2 关于驼峰问题2.3 3. 1. 前言 1.1 唠叨 本不想整这些老框架的…

在edge浏览器中安装好了burp的ca证书,浏览器依旧不能访问https的原因

在edge浏览器中安装好了burp的ca证书,浏览器依旧不能访问https的原因 1.SwitchyOmega代理插件设置2.CA证书方法1方法2 1.SwitchyOmega代理插件设置 严格安装以下图片执行,不可少写或多写 2.CA证书 方法1 下载好证书,先导入到edge浏览器的中…

商业智能的利用:打造成功的业务战略之道

在当今快节奏和数据驱动的商业环境中,制定稳健的商业战略对于实现可持续的增长和保持竞争力至关重要。商业智能(BI)是能够显著提高业务战略有效性的关键因素之一。本文将深入探讨商业智能的定义、其在战略制定中的重要性,以及如何…

作为资深IT从业者,我高度推荐这款智能团队协作工具

作为一名资深的IT从业人员,我最近发现了一款非常不错的团队协作和远程办公工具,它可以大大提高企业和团队的工作效率,所以今天我就向大家强烈推荐下这款产品。 这款产品名叫TeamLinker,它是一个集成了项目管理、文档协同、视频会议等多种功能于一体的智能化团队协作平台。以下…

数控设备液压站比例阀放大器

数控设备液压站是由液压泵、驱动用电动机、油箱、方向阀、节流阀、溢流阀等构成的液压源装置或包括控制阀在内的液压装置。电机带动油泵旋转,从油箱中吸油后打油,将机械能转化为液压油的压力能,再通过集成块(或阀组合)…

中文编程开发语言编程实际案例:程序控制灯电路以及桌球台球室用这个程序计时计费

中文编程开发语言编程实际案例:程序控制灯电路以及桌球台球室用这个程序计时计费 上图为:程序控制的硬件设备电路图 上图为:程序控制灯的开关软件截图,适用范围比如:台球厅桌球室的计时计费管理,计时的时候…

一阶惯性滤波器的传递函数与时域实现

滤波前后的效果对比如下: 可以得到,滤波后的幅值刚好是滤波前的0.707倍,也就是衰减了3deb,与理论分析一致。 需要注意的是,在simulink中,时域执行周期需要与设置的采样周期Ts一致,例如本例&…

智慧公厕:革新性的公共厕所管理系统

公共厕所,多年前似乎对每个人来说都是个需要避之唯恐不及的地方。但是,现代科技的进步让我们对公厕的认识产生了新的转变。智慧公厕作为一种结合了现代科技和人性化设计的公共厕所信息化管理系统,旨在提供更高效的管理方式,以及更…

Jmeter(七):jmeter连接数据库/中元件的执行顺序作用域详解

Jmeter:jmeter连接数据库 jmeter连接mysql数据库 大致步骤如下: 下载mysql的jar包放入到jmeter的lib下,然后重启jmeter配置JDBC Connection Configuration配置JDBC Request在请求中引用查询到的结果变量,可以结合计数器取每一个…

怎么恢复移走的u盘数据?可以尝试这三种方法

当意外移走U盘上的数据时,我们常常会感到焦虑和失望,特别是当这些数据对我们仍然重要时。不过,您不必完全放弃,因为本文将介绍一些方法,以帮助您恢复U盘上的重要数据。 图片来源于网络,如有侵权请告知 移走…

绘制核密度估计图

简介 核密度估计图(Kernel Density Estimation,KDE)是一种用于估计数据分布的非参数方法,通常用于可视化和理解数据的分布情况。它通过平滑地估计数据的概率密度函数(PDF)来显示数据的分布特征&#xff0c…

【广州华锐互动】全屋智能家电VR虚拟仿真演示系统

在过去的几年中,智能家居的概念已经逐渐进入人们的生活。然而,它的真正潜力和最终形态可能还未被完全发掘。一种新兴的技术,虚拟现实(VR),为我们提供了一种全新的方式来理解和体验智能家居。VR公司广州华锐…

C语言——二周目——程序的翻译与执行环境

一、程序环境 对于一个C语言程序的实现,整个过程一般存在两个不同的环境,分别是翻译环境与执行环境。在翻译环境中,我们所写的源代码经过一系列处理被转换成为可执行的机器指令;在执行环境中,会实际执行代码。 整个程序…

基于YOLOv8模型和WiderPerson数据集的行人目标检测系统(PyTorch+Pyside6+YOLOv8模型)

摘要:基于YOLOv8模型和WiderPerson数据集的行人目标检测系统可用于日常生活中检测与定位行人目标,利用深度学习算法可实现图片、视频、摄像头等方式的目标检测,另外本系统还支持图片、视频等格式的结果可视化与结果导出。本系统采用YOLOv8目标…

该方法仅能传入 lambda 表达式产生的合成类

说明:使用Mybatis-plus查询记录时,出现下面的错误; org.apache.ibatis.builder.BuilderException: Error evaluating expression ew.sqlSegment ! null and ew.sqlSegment ! and ew.nonEmptyOfWhere. Cause: org.apache.ibatis.ognl.OgnlEx…

2016-2023全国MBA国家A类线趋势图:浙大MBA要高多少?

距离2024年MBA联考还有两个月左右的时间,冲刺阶段需要为目标做最后的努力。关于分数的目标,目前国外的大多数MBA项目的录取门槛都是国家A类线,而后续常规批复试后的调剂门槛多数也是国家A类线,所以国家线应该是多数考生的第一目标…

【VS2017】MIDL : CreateFile() error : 2

记录一下这个奇葩的问题,应该不会有人遇到 错误描述 项目用到了windows的rpc,并且是 141_xp 编译的。安装相关组件后,编译报错如标题所示: 解决办法 暂时看到的头绪就是到midl的目录下,修改 midl.exe 的兼容性 C:\P…

java与c++中的交换方法

最近在写算法的时候,遇到一个问题。 java中编写swap(交换)方法还需要传入一个数组,但是在c中则不需要。 可以看到,在没有传入数组进行交换数组元素的时候,交换前与交换后的值是一样的。 而在c中&#xff…