性能优化---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在处理流媒体一般都是采用主动推送的方式进行。

相关推荐
乐闻x7 小时前
Vue.js 性能优化指南:掌握 keep-alive 的使用技巧
前端·vue.js·性能优化
青云交10 小时前
大数据新视界 -- 大数据大厂之 Impala 性能优化:跨数据中心环境下的挑战与对策(上)(27 / 30)
大数据·性能优化·impala·案例分析·代码示例·跨数据中心·挑战对策
Winston Wood12 小时前
Perfetto学习大全
android·性能优化·perfetto
EterNity_TiMe_12 小时前
【论文复现】(CLIP)文本也能和图像配对
python·学习·算法·性能优化·数据分析·clip
程序猿进阶13 小时前
堆外内存泄露排查经历
java·jvm·后端·面试·性能优化·oom·内存泄露
工业甲酰苯胺21 小时前
Redis性能优化的18招
数据库·redis·性能优化
无尽的大道1 天前
深入理解 Java 阻塞队列:使用场景、原理与性能优化
java·开发语言·性能优化
loey_ln1 天前
webpack配置和打包性能优化
前端·webpack·性能优化
郭梧悠2 天前
HarmonyOS(57) UI性能优化
ui·性能优化·harmonyos
奈斯ing2 天前
【Oracle篇】SQL性能优化实战案例(从15秒优化到0.08秒)(第七篇,总共七篇)
运维·数据库·sql·oracle·性能优化