什么是CDN
内容分发网络(Content Delivery Network,CDN)是建立并覆盖在承载网上,由不同区域的服务器组成的分布式网络。将源站资源缓存到全国各地的边缘服务器,利用全球调度系统使用户能够就近获取,有效降低访问延迟,降低源站压力,提升服务可用性。
CDN 功能:
第一降低机房的使用带宽,因为很多资源通过CDN就直接返回用户了
第二解决不同运营商之间的互联,可以让联通的网络访问联通让电信的网络访问电信,起到加速用户访问的目的
第三:解决用户访问的地域问题,就近返回用户资源。
常见的CDN服务商
百度CDN:https://cloud.baidu.com/product/cdn.html
阿里CDN:https://www.aliyun.com/product/cdn?spm=5176.8269123.416540.50.728y8n
腾讯CDN:https://www.qcloud.com/product/cdn
腾讯云CDN收费介绍:https://cloud.tencent.com/document/product/228/2949
1.3.2 用户请求CDN流程
提前对静态内容进行预缓存,避免大量的请求回源,导致主站网络带宽被打满而导致数据无法更新,另外CDN可以将数据根据访问的热度不同而进行不同级别的缓存,例如访问量最高的资源访问CDN 边缘节点的内存,其次的放在SSD或者SATA,再其次的放在云存储,这样兼顾了速度与成本。
1.3.3 CDN主要优势
提前对静态内容进行预缓存,避免大量的请求回源,导致主站网络带宽被打满而导致数据无法更新,另外CDN可以将数据根据访问的热度不同而进行不同级别的缓存,例如访问量最高的资源访问CDN 边缘节点的内存,其次的放在SSD或者SATA,再其次的放在云存储,这样兼顾了速度与成本。
缓存:缓存到最快的地方如内存,缓存的数据准确命中率高,访问速度就快
调度准确:将用户调度到最近的边缘节点
性能优化:CDN 专门用于缓存响应速度快
安全相关:抵御攻击
节省带宽:由于用户请求由边缘节点响应,因此大幅降低到源站带宽
1.4 应用层缓存
Nginx、PHP等web服务可以设置应用缓存以加速响应用户请求,另外有些解释性语言,比如:PHP/Python/Java不能直接运行,需要先编译成字节码,但字节码需要解释器解释为机器码之后才能执行,因此字节码也是一种缓存,有时候会出现程序代码上线后字节码没有更新的现象。