cdn工作原理 cdn分发系统源码( 三 )

  • 浏览器收到302回应,跟随 Location 中的 URL,继续发起 http 请求,这次请求的目标 IP 是CDN 边缘节点,CDN节点会响应实际的文件内容 。
  • 302 调度的优势:
    • 实时调度,因为没有 local DNS 缓存的,适合 CDN 的削峰处理,对于成本控制意义重大;
    • 准确性高,直接获取客户端出口 IP 进行调度 。
    302 调度的劣势:
    • 每次都要跳转,对于延时敏感的业务不友好 。一般只适用于大文件 。
    AnyCast BGP路由调度基于 BGP AnyCast 路由策略,只提供极少的对外 IP,路由策略可以很快的调整 。
    目前 AWS CloudFront、CloudFlare 都使用了这种方式,在路由层面进行调度 。
    这种方式可以很好地抵御 DDOS 攻击,降低网络拥塞 。
    当然这种方式的成本和方案设计都比较复杂,所以国内的 CDN 目前还都是用 UniCast 的方式 。
    一些概念CDN运作原理本地缓存的数据,通过key-value 的形式,将url 和本地缓存进行映射,存储结构与 Map相似,采用 hash 链表形式进行缓存 。
    image.png
    CDN命中率衡量我们CDN服务质量的一个核心标准,当用户访问的资源恰好在缓存系统里,可以直接返回给用户,说明CDN命中;如果CDN缓存中,没有命中资源,那么会触发回源动作 。
    CDN回源当CDN本地缓存没有命中时,触发回源动作,
    • 一级缓存 访问二级缓存是否有相关数据,如果有,返回一级缓存 。
    • 二级缓存 Miss,触发 二级缓存 回源请求,请求源站对应数据 。获取结果后,缓存到本地缓存,返回数据到一级缓存 。
    • 一级缓存 获取数据,缓存本地后,返回给用户 。
    CDN预热数据上面说的访问模式,都是基于Pull模式,由用户决策哪部分热点数据会最终存留在CDN缓存中;对于大促场景,我们往往需要预先将活动相关资源预热 到 边缘节点(L1),避免大促开启后,大量用户访问,造成源站压力过大 。这时候采用的是 Push模式 。
    CDN的特点总结1、资源访问加速: 本地Cache加速,提高了企业站点(尤其含有大量图片和静态页面站点)的访问速度,并大大提高以上性质站点的稳定性
    2、消除运营商间网络互联的瓶颈问题: 镜像服务消除了不同运营商之间互联的瓶颈造成的影响,实现了跨运营商的网络加速,保证不同网络中的用户都能得到良好的访问质量 。
    3、远程加速: 远程访问用户根据DNS负载均衡技术 智能自动选择Cache服务器,选择最快的Cache服务器,加快远程访问的速度
    4、带宽优化: 自动生成服务器的远程Mirror(镜像)cache服务器,远程用户访问时从cache服务器上读取数据,减少远程访问的带宽、分担网络流量、减轻原站点WEB服务器负载等功能 。
    【cdn工作原理 cdn分发系统源码】5、集群抗攻击: 广泛分布的CDN节点加上节点之间的智能冗余机制,可以有效地预防黑客入侵以及降低各种D.D.o.S攻击对网站的影响,同时保证较好的服务质量。