性能优化---CDN

1、CDN概念

CDN是指一种通过互联网互相连接的电脑网络系统,利用最靠近每位用户的服务器,更快、更可靠地将音乐、图片等文件发送给用户,来提高性能、可扩展性及低成本地网络内容传递给用户。

典型的CDN可分为:

a、分发服务系统:最基本的工作单元就是Cache设备,cache负责直接响应最终用户的访问请求,把缓存在本地的内容快速地提供给用户。同时cache还负责与源站点进行内容同步,把更新的内容以及本地没有的内容从源站点获取并保存到本地。Cache设备的数量、规模、总服务能力是衡量一个CDN系统服务能力的最基本的指标。

b、负载均衡系统:主要功能是负责对所有发起服务请求的用户进行访问调度,确定提供给用户的最终实际访问地址。两级调度体系分为全局负载均衡GSLB和本地负载均衡SLB。全局负载均衡主要根据用户就近性原则,通过对每个服务节点进行"最优"判断,确定向用户提供服务的cache的物理位置。本地负载均衡主要负责节点内部的设备负载均衡。

c、运营管理系统:运营管理系统分为运营管理和网络管理子系统,负责处理业务层面的与外界系统交互所必须的收集、整理、交付工作,包含客户管理、产品管理、统计分析等功能。

2、CDN的作用

CDN一般会用来托管Web资源(文本、图片、脚本等),可供下载的资源(媒体文件、软件、文档等),应用程序(门户网站等),使用CDN来加速这些资源的访问。CDN作为一种基础的云服务,同样具有资源托管、按需扩展等方面的优势。

性能方面,引入CDN的好处在于:用户收到的内容来自最近的数据中心,延迟更低,内容加载更快;部分资源请求分配给了CDN,减少了服务器的负载。

安全方面,CDN有助于防御DDoS(通过监控分析异常流量,限制其请求频率)、MITM(从源服务器CDN节点到ISP,全链路HTTPS通信)等网络攻击。

3、CDN工作原理

a、用户未使用CDN缓存资源的过程:

浏览器通过DNS对域名进行解析,依次得到此域名对应的IP地址;

浏览器根据得到的IP地址,向域名的服务主机发送数据请求;

服务器向浏览器返回响应数据。

b、用户使用CDN缓存资源的过程:

通过本地DNS对点击的url进行解析,发现该url对应的是一个CDN专用的DNS服务器,DNS系统就会将域名解析权交给CNAME(在域名解析中,实际上解析出来的指定域名对应的IP地址,或者该域名的一个别名,然后再根据这个别名查找对应的IP地址)指向的CDN专用的DNS服务器;

CDN专用的DNS服务器将CDN的全局负载均衡设备IP地址返回给用户;

用户向CDN的全局负载均衡设备发起数据请求;

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

区域负载均衡设备选择一台合适的缓存服务器来提供服务,将该缓存服务器的IP地址返回给全局负载均衡设备;

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

用户向该缓存服务器发起请求,缓存服务器响应用户的请求,将用户所需内容发送至用户终端;

如果缓存服务器没有用户想要的内容,那么缓存服务器就会向它的上一级缓存服务器请求内容,以此类推,直到获取到需要的资源。如果最后还是没有,就会回到自己的服务器去获取资源。

4、CDN的使用场景

使用第三方的CDN服务:如果想要开源一些项目,可以使用第三方的CDN服务;

使用CDN进行静态资源缓存:将项目的静态资源(img、css、js)放在CDN上,可以将整个项目放到CDN上,一键部署;

直播传送:直播可以用CDN来提高访问速度。CDN在处理流媒体一般都是采用主动推送的方式进行。

相关推荐
余槐i5 小时前
PostgreSQL 函数索引报错 must be immutable:3种绕法与代价
数据库·后端·sql·postgresql·性能优化
余槐i9 小时前
Skills 增至 30 个,Claude Code 反而变慢:token 与加载实测
性能优化·开发工具·ai agent·claude code·agent skills
xiaoqiMikko10 小时前
fastjson 1.2.84 的补丁关掉了一个缓存:addAccept 包前缀白名单下,反序列化慢了 13~28 倍
java·后端·性能优化
万联WANFLOW10 小时前
LLM 调用很快,AI Agent 为什么还是慢?关键路径分析与优化方法
性能优化·llm·aigc
yunwei3711 小时前
eBPF 教程:BPF 迭代器用于内核数据导出
linux·后端·性能优化
蒸鱼Yuzheng13 小时前
Shader 指令成本回归:离线编译、设备权重与误报控制
ci/cd·性能优化·gpu·shader·vulkan
UWA15 小时前
UGUI性能排查实战:隐藏血条后耗时下降,减少顶点为何没改善
ui·性能优化·cpu·游戏开发
余槐i16 小时前
Ollama 长文档问答后半段全空:context 默认值与静默截断的代价
性能优化·大模型·api·rag·ollama
严谨的麻辣烫17 小时前
为什么 API 接口偶尔报错,重试一次又恢复了?从 HTTP 连接池到 Keep-Alive 排查
python·网络协议·tcp/ip·http·性能优化
用AI来创业吧17 小时前
企业官网搭建一般多久能上线:把工期拆成 7 段,算清哪段会拖
性能优化·自动化·安全威胁分析