CDN系列学习文章(五)——预热篇

2019-06-19 22:55:15 浏览数 (2)

本文介绍CDN的内容管理中预热功能,主要从业务需求,业务逻辑以及常见问题三方面了解CDN预热功能。

1.为什么要预热?

CDN缓存是通过用户实际请求触发的,并将请求内容缓存保存下来,以便后续访问请求。这样会有一个问题,第一个用户访问源站资源的时候会有较长响应时间。

为了解决这个问题,CDN缓存通过预热集群发请求触发,CDN节点将请求内容缓存下来,提高实际用户首次访问的效率,有效降低文件的响应时间。

啥场景需要这个功能呢?

常见场景就同一时间大量用户请求源站新资源情况,例如新剧的开播,大型电商抢购活动等。大量用户同时发起请求,CDN节点没有缓存导致响应时间较长,甚至源站还会被打爆,业务彻底瘫痪。

2. 预热业务逻辑

预热功能是预热集群模拟请求,触发CDN节点缓存内容。基于触发CDN节点所在层级,常见预热有三种

  • 中间源集群或者父集群预热(最常见),图中B线路
  • 边缘节点预热,图中A线路
  • 指定节点预热,预热集群定点向CDN节点发送请求。

从下图可以看到两个关系

  • 预热效果取决于预热请求触发CDN节点与源站距离。节点与源站距离越近,预热效果越差。
  • CDN厂家预热带宽成本,触发边缘节点经过中间群集群回源站取资源,在A流程中,CDN厂家存在带宽成本,所以边缘预热和指定节点预热,不同CDN服务厂家支持粒度不一样。

预热业务逻辑预热业务逻辑

3.预热常见问题预取

  • 预热功能开放以及限制

目前腾讯云,预热功能只针对大客户开放,同时对于每日预热URL总条数(不超过1000)以及单次提交条数(不超过20条)有限制,这里主要考虑到预热请求量大的话,会对节点性能有影响。

详见官方文档:https://cloud.tencent.com/document/product/228/6299#url-.E9.A2.84.E7.83.AD

  • 能否支持目录预热?

目前仅支持URL预热,目录预热不支持。

  • 源站日志如何区分CDN正常回源请求还是预热请求?

1)通过加速平台特定预热机器IP地址

2)通过预取请求的UA头部,例如腾讯云 UA会带有curl/记录

UA记录UA记录
  • 预热失败常见问题
预取失败排障树预取失败排障树

0 人点赞