客户端向 CDN 节点发起连接请求,当 L1 节点有缓存资源时,会命中该资 源,直接将数据返回给客户端。当 L1 节点无缓存资源时,会向 L2 节点请求 对应资源,如果 L2 节点有缓存资源,则将资源同步到 L1 节点,并返回给用 户;
如果 L2 节点无缓存资源,则直接回客户源站获取资源,并按照配置的 缓存策略进行缓存。
假设有杭州移动节点 L1-hz 和宁波移 动节点 L1-nb 两个 L1 节点,这两个 L1 节点都回源到同一个 L2 这个节点, 源站在北京。这几个 CDN 节点初始的时候都没有用户的缓存资源。
当 ABC 三个用户依次请求同一个图片的时候,过程如下:
● 杭州移动用户 A 被 CDN 调度到杭州移动 L1-hz 节点,L1-hz 由于没有缓存, 则回源到 L2,L2 由于也没有缓存,则回源到北京源站,请求到数据以后再返 回给 L1-hz,L1 再返回给用户 A。
● 用户 A 请求完以后,L1-hz 和 L2 节点都有了缓存资源。此时杭州移动用户 B 也开始访问这个图片,用户 B 也被分配到了 L1-hz 节点,由于 L1-hz 已经有 这个图片的缓存了,因此不需要再去回源了,而是直接返回缓存给用户 B。
● 宁波移动用户 C 此时也访问了同一个图片,用户 C 被分配到了宁波移动节点 L1-nb,由于 L1-nb 还没有缓存,就会回源到 L2,而 L2 已经有缓存,因此 L2 会直接返回缓存数据给 L1-nb,然后 L1-nb 再返回给用户 B。此过程存 在 L1-nb 向 L2 回源的过程,而 L2 不需要再去回源到源站了。
● 通过 CDN 加速,杭州用户 A 和 B 可以直接从杭州节点读取缓存数据,宁波用 户 C 可以直接从宁波节点读取数据,不需要每一次都去请求北京服务器了,提 高了用户侧的访问速度,降低了服务器压力。