基本概念
定义:
- 全称 Content Delivery Network, 内容分发网络
- 将源站的资源缓存 CDN 各个节点上,当请求命中了某个节点的资源缓存时,立即返回客户端,避免每个请求的资源都通过源站获取,提升性能
扩展概念
- CDN 命中率:访问资源恰好在缓存里的概率
- CDN 回源:当 CDN 本地缓存没有命中时,触发 回源,向原本资源的位置查找
- CDN 预热数据
- 普通访问基于 Pull 模式,用户第一次获取内容后,缓存在 CDN 中
- 对于需要大访问量的场景,基于 Push 模式,即主动将需要访问的内容放到 CDN
CDN 访问过程
- 用户访问图片内容,先经过本地 DNS 解析,如果 LDNS 命中,直接返回给用户
- LDNS MISS,转发 授权DNS 查询
- 返回域名
CNAME
对应IP地址(实际就是 DNS 调度系统的 IP 地址) - 域名解析请求发送至 DNS 调度系统,DNS调度系统为请求分配最佳节点 IP 地址
- 返回的解析 IP 地址
- 用户向缓存服务器发起请求,缓存服务器响应用户请求,将用户所需内容传送到用户终端
CDN 组成
- 全局负载均衡 GLB (Global Load Balance)
- 通过一组预先定义好的策略,将当时最接近用户的节点地址提供给用户
- 需要与分布在各地的CDN节点保持通信,跟踪各节点的健康状态、容量等信息,确保将用户的请求分配到就近可用的节点上
- 缓存服务器
- 缓存热点数据
- 静态资源(html,js,css等)
- 多媒体资源(img,mp3,mp4等)
- 动态数据(边缘渲染)等
- 缓存热点数据