Appearance
CDN缓存
我们访问一个域名的时候其对应一个IP地址,也就对应一个物理机。这时候就会发现几个问题:
物理机在北方,用户在南方,那么这时候访问到额时候就出因为距离问题产生很大的延迟
所有的用户都访问这一台物理机,那么这台机子的压力会非常大
静态资源都比较大,带宽会占用很大
这时候CDN的概念就出来了。
当我们访问一个域名的时候,对于那些被CDN缓存的静态资源,他不会直接访问源服务器,而是根据就近原则找到最靠近CDN服务器, 然后在最近的CDN服务器中如果有这个资源的缓存,那么就直接返回给用户,如果不存在缓存,那么CDN服务器去访问原服务器,再将资源缓存在CDN服务器中, 那么下次访问或者另外一个人访问的时候都可以使用这个资源缓存数据。
缺点:
- 时效性
当源服务器的资源更新了,但是CDN服务器上的缓存数据没有失效,那么这时候哪怕用户Ctrl+F5都不会获取到最新的数据。
优点:
减少了用户访问的延迟
减少了源服务器的负载
缓存策略
各个CDN供应商缓存策略不同,但是都会遵循http的标准协议,如Cache-control:max-age=300; 当资源失效后也会向源服务器重新获取资源数据
回源率
CDN有一个重要的概念就是回源率。 当资源的缓存时间过短,那么CDN服务器向源服务器重新请求的更频繁,导致源服务器负载变大,同时也增加了访问延迟。
CDN缓存时间过长,那么就导致数据更新不及时。(对于这个问题,CDN服务器提供商一般会提供缓存刷新功能,强制是CDN服务器资源过期)