CDN如何成为大站标配?

news2024/11/8 15:12:09

在当下的互联网应用中充斥了大量的静态内容,这些静态和准动态内容在访问请求中占据了大量的网络资源,如果这些请求全部指向源站服务器,很容易导致网络的拥塞甚至是服务器的宕机,对正常的业务开展造成严重影响。为了解决这种情况,CDN 技术应运而生。

什么是 CDN?

CDN 的全称是 Content Delivery Network,即内容分发网络。CDN 是构建在网络之上的内容分发网络,依靠部署在各地的边缘服务器,通过中心平台的负载均衡、内容分发、调度等功能模块,使用户就近获取所需内容,降低网络拥塞,提高用户访问响应速度和命中率。

CDN 的基本原理

CDN 的基本原理是在用户访问相对集中的地区和网络设置一些缓存服务器。当用户访问网站时,利用全局的负载均衡技术将用户的访问指向距离最近的缓存服务器,由缓存服务器代替源站响应用户的访问请求。这样一方面减轻了源站服务器的工作压力,另一方面使用户可就近取得所需内容,解决 Internet 网络拥挤的状况,提高用户访问网站的响应速度。

CDN 的工作过程

(1)当用户点击网站页面上的内容 URL,本地解析系统会得到该域名的 CNAME 记录,然后 DNS 系统将解析交给 CNAME 指向的 CDN 专用 DNS 服务器。

(2)CDN 的 DNS 服务器将 CDN 的全局负载均衡设备 IP 地址返给用户。

(3)用户向 CDN 的全局负载均衡设备发起内容 URL 访问请求。

(4)CDN 全局负载均衡设备根据用户 IP 地址,以及用户请求的内容 URL,选择一台用户所属区域的负载均衡设备,告诉用户向这台设备发起请求。

(5)区域负载均衡设备会为用户选择一台合适的缓存服务器提供服务。

(6)全局负载均衡设备把服务器的 IP 地址返回给用户。

(7)用户向缓存服务器发起请求,缓存服务器响应用户请求,将用户所需内容传送到用户终端。

(8)如果这台缓存服务器上并没有用户想要的内容,那么这台服务器就要向它的上一级缓存服务器请求内容,直至追溯到网站的源服务器将内容缓存到本地。

CDN 工作流程图

CDN 有哪些作用?

CDN 主要用于加速网站的访问,除此之外还有其他一些作用:

1. 实现跨运营商、跨地域的全网覆盖

CDN 通过和运营商合作,部署 IDC 资源,在全国骨干节点上合理部署 CDN 边缘分发存储节点,充分利用带宽资源,平衡源站流量,实现跨域跨网的全覆盖效果。

2. 保障网站安全

CDN 的负载均衡和分布式存储技术,可以让服务器源站 “躲在” CDN 节点背后免遭攻击,相当于无形中为网站添加了一把保护伞,有效提升网站的安全性和可靠性。

3. 异地备援

当某个服务器发生意外故障时,CDN 会调用其他邻近的健康服务器节点进行服务,进而提供接近 100% 的可靠性,使网站处于永不宕机的状态。

4. 节约成本投入

CDN 可以实现网站节点的全国铺设,无需考虑购买服务器与后续的托管运维,也不用为管理维护技术人员而烦恼,节省人力、精力和财力。

CDN 的应用场景

1. 网站与应用加速

CDN 可用于网站或者应用中大量静态资源的加速分发,如各类型图片、html、css、js 文件等,可以通过 CDN 缓存到边缘节点上,当用户访问即可就近获取,降低了用户访问时延同时缓解了源站压力

2. 视频、大文件下载分发加速

CDN 可以针对各类文件、在线点播视频提供下载、分发加速,比如 mp4、flv 视频文件或者单个文件大小在 20M 以上的安装包等文件,CDN 可以搭配对象存储 OSS 使用,提升回源速度,节约回源带宽成本。

3. 直播加速

CDN 可以为直播分发提供流畅的播放下行链路,借助负载均衡系统将主播端采集的音视频数据推送到接近用户的数千个边缘节点,当观众端发起请求,可以就近取得资源,减少网络抖动风险,增加直播链路稳定性和流畅性。

4. 移动应用加速

CDN 可以为移动 APP 更新文件分发,为移动 APP 内图片、页面、短视频、UGC 等内容的优化提供加速分发效果。同时可提供 http DNS 服务,避免 DNS 劫持并获得实时精确的 DNS 解析结果,有效缩短用户访问时间,提升用户体验。

……

在今天的互联网应用场景下,CDN 所承载内容越来越多,不仅仅是图片、下载、视频等静态内容的分发和就近接入等加速应用,CDN 在减少宽带成本、防止服务中断、加强网站的安全性、增加内容可用性和冗余等方面也发挥着重要作用,已经成为了一项不可或缺的网络基础设施。

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

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

相关文章

共享电子邮件的运作方式

通过电子邮件共享,您可以使用评论轻松管理围绕电子邮件展开的讨论,而无需多次转发和回复。这提供了一种轻松的方式,让您可以通过电子邮件与同事分享信息,并获得他们对此的意见/反馈/建议。 电子邮件共享的运作方式 您收到或发送的…

开源流媒体服务器ZLMediaKit在Windows上运行、配置、按需拉流拉取摄像头rtsp视频流)并使用http-flv网页播放

场景 目前市面上有很多开源的流媒体服务器解决方案,常见的有SRS、EasyDarwin、ZLMediaKit和Monibuca等。 1、SRS GitHub - ossrs/srs: SRS is a simple, high efficiency and realtime video server, supports RTMP, WebRTC, HLS, HTTP-FLV, SRT, MPEG-DASH and …

【linux】 安装 java 环境

目录1.检查linux 下是否安装java(jdk)环境2.查看 linux 的操作系统版本3.下载jdk4.新建java文件夹用于安装jdk5.将下载到本地的jdk压缩包上传到linux服务器6.配置环境变量1.检查linux 下是否安装java(jdk)环境 可通过下面五条命令来查看linux 系统是否安装了java 环境 1、java …

$ZZZ 以 Launchpad 形式多平台首发,GoSleep 成 Sleep to Earn 叙事成 X2E 新宠

“ GoSleep 的治理代币 $ZZZ 将以 Launchpad 形式登录 Bitget、Gate.io以及MXC,这或许预示着 Sleep to Earn 叙事或成 X2E 新宠” “Sleep to Earn” 成为 X2E 市场新发力点 StepN 在去年为 X2E 赛道做了一个很好的示范,这也让这个领域不再仅仅局限于基于…

HarmonyOS/OpenHarmony应用开发-Stage模型ArkTS语言Ability基类

Ability模块提供对Ability生命周期、上下文环境等调用管理的能力,包括Ability创建、销毁、转储客户端信息等。 说明: 模块首批接口从API version 9 开始支持。模块接口仅可在Stage模型下使用。 导入模块: import Ability from ohos.app.ability.Ability; 接口说明…

虚拟化技术:实现资源高效利用和灵活管理的利器

虚拟化技术是一种通过软件或硬件手段,将物理资源抽象化,从而创建虚拟资源的技术。这种技术可以应用于计算、存储、网络等领域,通过将物理资源划分为多个虚拟资源,使得多个应用程序或用户可以共享同一组物理资源,从而提…

面试官:说说Java、Spring、Dubbo三者SPI机制的原理和区别

今天来跟大家聊一聊Java、Spring、Dubbo三者SPI机制的原理和区别。 其实我之前写过一篇类似的文章,但是这篇文章主要是剖析dubbo的SPI机制的源码,中间只是简单地介绍了一下Java、Spring的SPI机制,并没有进行深入,所以本篇就来深入…

数据结构2:顺序表和链表

目录 1.线性表 2.顺序表 2.1概念及结构 2.2接口实现 2.3数据相关面试题 2.4顺序表的问题及思考 3.链表 3.1链表的概念及结构 3.2链表的分类 3.3链表的实现 3.4链表面试题 3.5双向链表的实现 4.顺序表和链表的区别 1.线性表 线性表(linear list&#x…

Qt QImage scaled方法缩放中的问题

最近在某些测试中发现,QImage 先按照一定的比例进行缩放,在对QImage对象进行绘制等操作后,使用以下的方式将其恢复到其原来的尺寸。 图像的缩放是这样的: void ImageBaseWidget::zoomImage(QMouseEvent *event) {if (event->…

传输层协议——TCP协议

传输层协议——TCP协议认识IP地址TCP/IP的分层管理TCP/IP分层通信示例(发送数据包)认识IP地址 IP地址属于网络层地址 在计算机通信中,为了识别通信对端,必须有一个类似于地址的识别码进行标识。IP地址用于在连接到网络中的所有主…

利用seaborn、statannotations库绘制显著性标注

如何使用Python-SeabornSeaborn进行显著性统计图表绘制,详细内容如下: Python-Seaborn自定义函数绘制Python-statannotations库添加显著性标注 1、Python-Seaborn 自定义函数绘制 import matplotlib.pylab as plt import numpy as np import seaborn as…

Spring Cloud组件源码之LoadBalancer源码分析

" Spring 到底是春天的来临万物复苏,还是春转夏的干燥又炎热呢?" Spring的来临让JavaEE走向了另一个高度。便捷的开发,完美的生态。物极必反,学习Spring的成本越来越低,导致Java程序员越来越密集&#xff0…

1、Windows下编译并搭建AzerothCore服务端

目录前言一、AzerothCore下载二、mysql安装三、boost安装四、OpenSSL安装五、CMake下载六、CMake编译1 - CMake生成vs项目2 - vs项目设置3 - 生成解决方案4 - 安装AzerothCore5 - 添加账号6 - 修改服务器名称7 - 修改客户端的服务器地址前言 客户端对应版本:魔兽世…

CANopen | 对象字典OD 07 - 创建对象字典变量,变量变化时发送TPDO1,滤波时间200ms

文章目录一、前言二、实验目的三、对象字典OD四、TPDO1数据变化发送,滤波时间200ms4.1、main.c4.2、让CANopen从站进入操作状态4.3、TPDO1的CAN数据包一、前言 该笔记的程序:github 二、实验目的 CANopen从站有一个变量tx_Value,映射到T…

我调用第三方接口遇到的13大坑

前言 在实际工作中,我们经常需要在项目中调用第三方API接口,获取数据,或者上报数据,进行数据交换和通信。 那么,调用第三方API接口会遇到哪些问题?如何解决这些问题呢? 这篇文章就跟大家一起…

ubuntu防火墙命令介绍

ubuntu在开启ufw防火墙前,为了避免与iptables现有规则冲突,建议先清空iptables的所有规则。相关命令如下: iptables -F 更改iptables规则链默认操作命令如下: iptables -P INPUT ACCEPTiptables -P FORWARD ACCEPTiptables -P …

【PyTorch】第一节:张量(Tensor)的定义

作者🕵️‍♂️:让机器理解语言か 专栏🎇:PyTorch 描述🎨:PyTorch 是一个基于 Torch 的 Python 开源机器学习库。 寄语💓:🐾没有白走的路,每一步都算数&#…

云原生网络之微隔离

本博客地址:https://security.blog.csdn.net/article/details/130044619 一、微隔离介绍 1.1、微隔离概念 在主体执行动作时,对主体权限和行为进行判断,最常见的是网络访问控制,也就是零信任网络访问(ZTNA&#xff…

TP5 解决如何实现生成并导出Word文档功能

今天连续更新两篇文章,上一篇讲了一下如何生成PDF并导出文件的功能 接下来我们就来拼一拼怎么实现生成并导出word文档的功能 话不多说 我们直接上流程: 1.下载安装phpword插件:composer require phpoffice/phpword 2.安装成功后该插件在我们项…

Linux——高级I/O操作(三)

目录 I/O多路复用 异步I/O I/O多路复用 阻塞型I/O 相对于非阻塞型 I/O 来说,最大的优点就是在设备的资源不可用时,进程主动放弃 CPU,让其他的进程运行,而不用不停地轮询,有助于提高整个系统的效率。但是其缺点也是比…