前端面试当中CDN会问啥------CDN详细教程来啦
⼀、CDN
1. CDN的概念
CDN(Content Delivery Network,内容分发⽹络)是指⼀种通过互联⽹互相连接的电脑⽹络系统,利 ⽤最靠近每位⽤户的服务器,更快、更可靠地将⾳乐、图⽚、视频、应⽤程序及其他⽂件发送给⽤户, 来提供⾼性能、可扩展性及低成本的⽹络内容传递给⽤户。
典型的CDN系统由下⾯三个部分组成:
A.分发服务系统:最基本的⼯作单元就是Cache设备,cache(边缘cache)负责直接响应最终⽤户的 访问请求,把缓存在本地的内容快速地提供给⽤户。同时cache还负责与源站点进⾏内容同步,把 更新的内容以及本地没有的内容从源站点获取并保存在本地。Cache设备的数量、规模、总服务能 ⼒是衡量⼀个CDN系统服务能⼒的最基本的指标。
B.负载均衡系统:主要功能是负责对所有发起服务请求的⽤户进⾏访问调度,确定提供给⽤户的最终 实际访问地址。两级调度体系分为全局负载均衡(GSLB)和本地负载均衡(SLB)。全局负载均衡主要根据⽤户就近性原则,通过对每个服务节点进⾏“最优”判断,确定向⽤户提供服务的cache的 物理位置。本地负载均衡主要负责节点内部的设备负载均衡
C.运营管理系统:运营管理系统分为运营管理和⽹络管理⼦系统,负责处理业务层⾯的与外界系统交 互所必须的收集、整理、交付⼯作,包含客户管理、产品管理、计费管理、统计分析等功能。
2. CDN的作⽤
CDN⼀般会⽤来托管Web资源(包括⽂本、图⽚和脚本等),可供下载的资源(媒体⽂件、软件、⽂档 等),应⽤程序(⻔户⽹站等)。使⽤CDN来加速这些资源的访问。
(1)在性能⽅⾯,引⼊CDN的作⽤在于: ⽤户收到的内容来⾃最近的数据中⼼,延迟更低,内容加载更快 部分资源请求分配给了CDN,减少了服务器的负载
(2)在安全⽅⾯,CDN有助于防御DDoS、MITM等⽹络攻击: 针对DDoS:通过监控分析异常流量,限制其请求频率 针对MITM:从源服务器到 CDN 节点到 ISP(Internet Service Provider),全链路 HTTPS 通信 除此之外,CDN作为⼀种基础的云服务,同样具有资源托管、按需扩展(能够应对流量⾼峰)等⽅⾯的 优势。
3. CDN的原理
CDN和DNS有着密不可分的联系,先来看⼀下DNS的解析域名过程,在浏览器输⼊ www.test.com 的 解析过程如下:
(1) 检查浏览器缓存
(2)检查操作系统缓存,常⻅的如hosts⽂件
(3)检查路由器缓存
(4)如果前⼏步都没没找到,会向ISP(⽹络服务提供商)的LDNS服务器查询
(5)如果LDNS服务器没找到,会向根域名服务器(Root Server)请求解析,分为以下⼏步: 根服务器返回顶级域名(TLD)服务器如 .com , .cn , .org 等的地址,该例⼦中会返回 .com 的 地址 接着向顶级域名服务器发送请求,然后会返回次级域名(SLD)服务器的地址,本例⼦会返回 .test的地址 接着向次级域名服务器发送请求,然后会返回通过域名查询到的⽬标IP,本例⼦会返回www.test.com 的地址 Local DNS Server会缓存结果,并返回给⽤户,缓存在系统中
CDN的⼯作原理:
(1)⽤户未使⽤CDN缓存资源的过程:
1. 浏览器通过DNS对域名进⾏解析(就是上⾯的DNS解析过程),依次得到此域名对应的IP地址
2. 浏览器根据得到的IP地址,向域名的服务主机发送数据请求
3. 服务器向浏览器返回响应数据
(2)⽤户使⽤CDN缓存资源的过程:
1. 对于点击的数据的URL,经过本地DNS系统的解析,发现该URL对应的是⼀个CDN专⽤的DNS服务 器,DNS系统就会将域名解析权交给CNAME指向的CDN专⽤的DNS服务器。
2. CND专⽤DNS服务器将CND的全局负载均衡设备IP地址返回给⽤户
3. ⽤户向CDN的全局负载均衡设备发起数据请求
4. CDN的全局负载均衡设备根据⽤户的IP地址,以及⽤户请求的内容URL,选择⼀台⽤户所属区域的 区域负载均衡设备,告诉⽤户向这台设备发起请求
5. 区域负载均衡设备选择⼀台合适的缓存服务器来提供服务,将该缓存服务器的IP地址返回给全局负 载均衡设备
6. 全局负载均衡设备把服务器的IP地址返回给⽤户
7. ⽤户向该缓存服务器发起请求,缓存服务器响应⽤户的请求,将⽤户所需内容发送⾄⽤户终端。 如果缓存服务器没有⽤户想要的内容,那么缓存服务器就会向它的上⼀级缓存服务器请求内容,以此类 推,直到获取到需要的资源。最后如果还是没有,就会回到⾃⼰的服务器去获取资源。
4. CDN的使⽤场景
A.使⽤第三⽅的CDN服务:如果想要开源⼀些项⽬,可以使⽤第三⽅的CDN服务
B.使⽤CDN进⾏静态资源的缓存:将⾃⼰⽹站的静态资源放在CDN上,⽐如js、css、图⽚等。可以 将整个项⽬放在CDN上,完成⼀键部署。
C.直播传送:直播本质上是使⽤流媒体进⾏传送,CDN也是⽀持流媒体传送的,所以直播完全可以使 ⽤CDN来提⾼访问速度。CDN在处理流媒体的时候与处理普通静态⽂件有所不同,普通⽂件如果在 边缘节点没有找到的话,就会去上⼀层接着寻找,但是流媒体本身数据量就⾮常⼤,如果使⽤回源 的⽅式,必然会带来性能问题,所以流媒体⼀般采⽤的都是主动推送的⽅式来进⾏。
相关文章:
前端面试当中CDN会问啥------CDN详细教程来啦
⼀、CDN 1. CDN的概念 CDN(Content Delivery Network,内容分发⽹络)是指⼀种通过互联⽹互相连接的电脑⽹络系统,利 ⽤最靠近每位⽤户的服务器,更快、更可靠地将⾳乐、图⽚、视频、应⽤程序及其他⽂件发送给⽤户&…...
刷题记录:牛客NC19429红球进黑洞 区间拆位异或+区间求和
传送门:牛客 题目描述: 区间求和区间异或k 输入: 10 10 8 5 8 9 3 9 8 3 3 6 2 1 4 1 1 2 6 2 9 10 8 1 1 7 2 4 7 8 2 8 8 6 2 2 3 0 1 1 2 2 9 10 4 1 2 3 输出: 33 50 13 13一道区间求和区间异或的题目,可以称得上是线段树的一道好题 首先对于异或运算来说,并不满足…...
信息数智化招采系统源码——信息数智化招采系统
信息数智化招采系统 服务框架:Spring Cloud、Spring Boot2、Mybatis、OAuth2、Security 前端架构:VUE、Uniapp、Layui、Bootstrap、H5、CSS3 涉及技术:Eureka、Config、Zuul、OAuth2、Security、OSS、Turbine、Zipkin、Feign、Monit…...
20230217使AIO-3399J开发板上跑通Android11系统
20230217使AIO-3399J开发板上跑通Android11系统 2023/2/17 15:45 1、解压缩SDK:rk3399-android-11-r20211216.tar.xzrootrootrootroot-X99-Turbo:~$ tar xvf rk3399-android-11-r20211216.tar.xz 2、编译U-boot: rootrootrootroot-X99-Turbo:~/rk3399-a…...
Java 基础面试题——面向对象
目录1.面向对象和面向过程有什么区别?2.面向对象的有哪些特征?3.静态变量和实例变量有什么区别?4.Java 对象实例化顺序是怎样的?5.浅拷贝和深拷贝的区别是什么?5.1.浅拷贝5.2.深拷贝5.3.总结6.Java 中创建对象的方式有哪几种&…...
PDF文件替换内容(电子签章),依赖免费pdfbox
首先提前准备,压入如下依赖 <!-- https://mvnrepository.com/artifact/org.apache.pdfbox/pdfbox --> <dependency> <groupId>org.apache.pdfbox</groupId> <artifactId>pdfbox</artifactId>…...
nvm 控制 node版本
nvm 官网 https://nvm.uihtm.com/ 1、卸掉nodejs,根据官网操作 2、如果之前安装过的nodejs,且安装的目录改变了,需重新配置系统环境 第一步:打开此电脑 > 右键属性 > 高级系统设置 > 环境变量 第二步: 在系统变量中选中…...
javaEE 初阶 — 传输层 TCP 协议中的异常情况与面向字节流的粘包问题
文章目录1 粘包问题1.1 什么是粘包问题1.2 如何解决粘包问题2 异常情况TCP 的十个特性:确认应答机制 超时重传机制 连接管理机制 滑动窗口 流量控制与拥塞控制 延迟应答与捎带应答 1 粘包问题 1.1 什么是粘包问题 面向字节流引入了一个比较麻烦的粘包问题。 …...
IP路由基础
——IP路由基础(IA)—— HCIA全套笔记已经上线(arpAAAvlanTrunk链路聚合vlan间通信ACL广域网技术以太网交换...........)_孤城286的博客-CSDN博客 目录 ——IP路由基础(IA)—— (1&#…...
12.centos7部署sonarqube9.6
12.centos7部署sonarqube9.6环境:sonarqube9.6Postgresql13JDK11sonarqube9.6下载地址:Postgresql13 rpm下载地址:JDK11下载地址:准备工作:修改文件句柄数(最大文件数)和用户最大进程数限制修改…...
大学四年自学Java编程,现在拿到28万年薪的offer,还是觉得挺值的
最近刚拿到美团的Java后端工程师的offer,(底薪、奖金、补贴、年终奖、五险一金)总包加在大概有28万的年薪,实际到手不会有这么多,但是我对于这个待遇还是非常满意的。说来还是非常的感慨,我属于那种从大一到…...
MySQL的日志详解
目录 一.介绍 日志分类 二.错误日志 三.二进制日志—binlog 概述 日志格式 操作 四.查询日志 五.慢查询日志 一.介绍 在任何一种数据库中,都会有各种各样的日志,记录着数据库工作的方方面面,以帮助数据库管理员追踪数据库曾经发生过的…...
输出该股票所有收盘比开盘上涨3%以上的日期
1:输出该股票所有收盘比开盘上涨3%以上的日期 #codingutf-8 import tushare as ts import pandas as pd import numpy as np#获取某支股票的历史行情数据 dfts.get_hist_data(code600519,start2001-01-01) #将互联网上的数据获取并且存储到本地 df.to_csv(./maotai…...
数值卡,让数据可视化玩出新花样丨三叠云
数值卡 路径 仪表盘 >> 仪表盘设计 功能简介 1. 数值卡增加「数值标题」、「图标」、「进度条」功能,使得应用场景更为广泛,实现数据可视化,让用户能够轻松地获取、处理信息。 2.「数据模型」支持0个维度1个指标、1个维度1个指标。…...
有这几个表现可能是认知障碍前兆
我国目前对于认知障碍的认知率、就诊率、诊断率很低,然而认知障碍如果能在早期发现,并及时治疗,生活质量会有效提高,缓解家属的精神和经济负担。所以,认知障碍的前兆一定要了解。1.记忆力减退,一周内的重要…...
java面试题-阿里真题详解
前言 大家好,我是局外人一枚,最近有不少粉丝去阿里巴巴面试了,回来之后总结不少难题给我,以下是面试的真题,跟大家一起来讨论怎么回答。 阿里一面 1、说⼀下ArrayList和LinkedList区别 ⾸先,他们的底层数…...
JSON格式解析关键词搜索API
为了进行此平台API的调用,首先我们需要做下面几件事情。 1、 获取一个KEY。 2、 参考API文档里的接入方式和示例。 3、查看测试工具是否有需要的接口,响应实例的返回字段是否符合参数要求。 4、利用平台的文档中心和API测试工具,对接口进…...
【Java基础】泛型(二)-泛型的难点:通配符
本文将尝试将通配符和泛型中的继承,多态一并讲解 关于泛型中继承的注意事项 因为Integer、Double继承了Number,根据多态性,以下语句是合法的 Number n new Integer(10); // OK, 父类引用变量可以指向子类对象 n 2.9 // OK,n实…...
黑马】后台管理-两个括号的坑
记录一下这两天的坑没想到后台管理系统上线这两天都没有搞明白1.首先第一个坑是使用node.js的express中间件框架创建一个微型服务器,然后将vue脚手架生成的dist文件夹的文件放入里面了 ,把项目加载到web服务器之后运行node .\app.js,页面显示…...
05:进阶篇 - 使用 CTKWidgets
作者: 一去、二三里 个人微信号: iwaleon 微信公众号: 高效程序员 CTKWidgets 包含了一组 Qt 部件,用于生物医学成像应用程序。当然,即使你的程序与医学无关,很多部件也是很有参考意义的。 在 CTK 源码中,有很多选项开关,可以控制你想要编译的内容(详见:04:进阶篇 …...
【YOLO V5】代码复现过程
接上篇,讲到如何从mask转成YOLOv5训练需要的txt数据集格式,这篇就在此基础上进行模型训练预测和部署转换吧! 目录 1.环境准备 2.YOLO训练 2.1 数据集准备 2.2 data.yaml准备 2.3 yolov5.yaml准备 2.4 训练命令 3.YOLO预测 3.1OLOv5 P…...
汽车如何实现制动
汽车如何实现制动 汽车如何实现制动 难点答疑:汽车刹车时,四个车轮是如何制动的?制动机理是什么? 第一步:驾驶员踩下制动踏板,推动制动主缸 第二步:制动主缸将制动液的压力通过制动管道传递到四…...
cmake 引入第三方库(头文件目录、库目录、库文件)
程序的编写需要用到头文件,程序的编译需要lib文件,程序的运行需要dll文件,因此cmake引入第三方库其实就是将include目录、lib目录、bin目录引入工程。 目录 1、find_package(批量引入库文件和头文件) 2、include_dir…...
插件开发版|Authing 结合 APISIX 实现统一可配置 API 权限网关
当开发者在构建网站、移动设备或物联网应用程序时,API 网关作为微服务架构中不可或缺的控制组件,是流量的核心进出口。通过有效的权限管控,可以实现认证授权、监控分析等功能,提高 API 的安全性、可用性、拓展性以及优化 API 性能…...
deepinlinux v20安装rust和tauri并配置vscode开发工具过程
rust 很快进入linux内核开发,作为高效后台语言值得学习 tauri是代替electron的跨平台框架,不打包浏览器内核,所以打包出来体积小 安装rust 命令 curl --proto https --tlsv1.2 -sSf https://sh.rustup.rs | sh 安装后看版本 rustc -V 看构…...
通俗易懂的机器学习——sklearn鸢尾花分类(KNN)
前言 KNN算法是机器学习中较为简单的入门算法,其主要思想是选取k个与待预测点相近的数据,观察他们的类别,本着离谁近就更像谁的思路对于待预测点进行预测,本文将针对使用sklearn进行KNN算法的使用进行详解 数据预处理 在正式开…...
操作系统引论
操作系统是管理硬件和软件的一种应用程序。操作系统是运行在计算机上最重要的一种软件,它管理计算机的资源和进程以及所有的硬件和软件。它为计算机硬件和软件提供了一种中间层,使应用软件和硬件进行分离,让我们无需关注硬件的实现࿰…...
优质 CS 读博 (PhD) 经验贴汇总
前言 如果你对这篇文章可感兴趣,可以点击「【访客必读 - 指引页】一文囊括主页内所有高质量博客」,查看完整博客分类与对应链接。 Advice for early-stage Ph.D. students 读博的核心是在研究上取得进展,只有在研究上取得一些进展ÿ…...
SpringCloud学习笔记 - @SentinelResource的fallbackblockHandler配置详解 - sentinel
1. sentinel服务负载均衡测试 sentinel默认开启了负载均衡的轮询模式,为了测试sentinel服务负载均衡的效果,需要先创建两个服务提供者和一个服务消费者。 1.1. 分别创建两个服务提供者-支付服务9003、9004 1. 添加pom依赖: 提供者只需要将…...
华为OD机试题 - 静态扫描最优成本(JavaScript)
最近更新的博客 2023新华为OD机试题 - 斗地主(JavaScript)2023新华为OD机试题 - 箱子之形摆放(JavaScript)2023新华为OD机试题 - 考古学家(JavaScript)2023新华为OD机试题 - 相同数字的积木游戏 1(JavaScript)2023新华为OD机试题 - 最多等和不相交连续子序列(JavaScri…...
毕设做网站什么能过/培训机构连锁加盟
今天在本文中,KlipC的风险总监和机器学习专家Philip Nucci将教我们的用户如何使用名为支持向量回归(SVR)的机器学习算法创建直观的货币预测Python程序。该程序将读取EUR / USD的历史数据和波动性,并根据当天价格预测开盘价。我们选…...
织梦网站栏目不显示/苏州关键词优化排名推广
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼/*将移位寄存器内的数据锁存到输出寄存器并显示 *//* *//*******…...
连云港营销型网站建设/前端seo优化
Chapter27:参数方程和极坐标27.参数方程和极坐标27.1 参数方程27.1.1 参数方程的导数27.1.2 参数定义的曲线长度27.1.3 参数化曲线的旋转体表面积27.2 极坐标27.2.1 极坐标与笛卡尔坐标互换27.2.2 极坐标中画曲线常见的极坐标曲线27.2.3 求极坐标曲线的切线27.2.4 求…...
网站建设秋实/百度关键词如何优化
1 介绍 在分布式系统中,由于涉及到多个不同业务module的交互,以及高并发的场景。我们需要系统能够生成一个跨业务module的全网唯一序列号,来保证我们业务操作的独立性和唯一性。 在常见的业务场景中,比如全局订单Id,…...
唐山网站建设外包公司哪家好/鲜花网络营销推广方案
1. 均值滤波器与中值滤波器 image processing - Difference between linear and non linear filter - Signal Processing Stack Exchange 最为典型的均值滤波器是线性滤波器,而中值滤波器是非线性滤波器。 判断一个函数(滤波器)线性非线性的最…...
网站绑定微信号/平面设计培训费用一般是多少
junit 报错 java.lang.Exception: No tests found matching [{ExactMatcher:fDisplayNametestSelectByExample], 坑了我三个点的问题 不是没写 Test,不是 public,参数,返回值,修饰符的错误,也不是 spring 包与 junit 的…...