CDN

概念

CDN即Content Delivery Network,内容分发网络。通过将源站内容分发至各个节点缓存,使用户获取内容时可以就近从节点获取,提高请求的响应速度和成功率,并且降低源站的负载。

访问过程

客户把网站域名CNAME指向CDN供应商提供的域名,并提供源站的IP或域名。

用户访问网站时,被DNS解析到CDN供应商的域名,此域名对应的服务器会根据用户的位置、各缓存节点负载、网络质量等情况解析到合适的节点IP返回给用户,用户通过此节点来访问网站内容。

当用户访问内容在节点上命中缓存时,直接返回缓存给用户。当未命中缓存时,因为CDN节点可能会有多个层级,当前节点会向上一级节点请求资源,如果上一级也无此资源,会继续向上请求,直到请求成功或者向客户源发起请求,此过程称为回源。当请求资源成功返回后,节点会返回资源给用户并且缓存此资源供以后访问。

节点资源同步

CDN节点资源的同步方式一般有pull和push。

pull即访问节点资源时,下层节点向上层发起请求来同步资源,比如用户访问的资源未命中缓存的情况;push是上层节点主动推送资源给下层来同步,比如客户源的资源更新时。