有奖征文:轻量对象存储LighthouseCOS用户实践> HOT

功能简介

缓存资源在 EdgeOne 节点内过期后,EdgeOne 在收到对应的客户端请求时,将回源获取最新资源文件,在高峰期可能导致回源量大幅上涨。缓存预刷新能力可以在缓存资源过期之前就回源验证缓存资源是否有效,不用等到过期后再验证,有助于保持资源的实时性,更快响应请求。缓存预刷新时间可按照文件缓存 TTL 的百分比进行配置。

使用场景

因缓存预刷新功能可以提前回源验证资源有效性,建议您在需要频繁更新内容或对用户体验要求较高的场景中使用:
高实时性要求:对于需要快速更新的内容,如新闻、活动页面等,客户希望用户在请求时能够获取到最新的资源。通过启用缓存预刷新功能,节点在资源过期前就回源验证并更新缓存,从而确保用户在访问时能够获得较新的资源,从而避免在用户请求时产生额外的等待时间,提高用户体验。
降低回源压力:对于一些热点资源,在过期后可能会引发大量的回源请求。启用缓存预刷新功能,可以将这些回源请求提前进行,减少在资源过期时集中产生大量回源请求,从而降低回源压力。

操作步骤

场景一:针对站点所有域名配置缓存预刷新

若您需要对整个接入站点配置相同的缓存预刷新,或作为站点级兜底配置,可参考以下步骤:
1. 登录 边缘安全加速平台 EO 控制台,在左侧菜单栏中,单击站点列表,在站点列表内单击需配置的站点。
2. 在站点详情页面,单击站点加速 > 缓存配置
3. 在缓存预刷新卡片中,单击开启全局站点设置,在弹出的确认框中输入预刷新时间的百分比值。

配置状态:默认为关闭,可点击滑块开启。
预刷新时间:占节点缓存 TTL 的百分比,可输入1-99整数。默认90%。
4. 单击保存即可下发配置。

场景二:针对指定域名,路径或文件后缀等请求粒度配置缓存预刷新

若您需要针对不同域名,路径或文件后缀等配置不同的缓存预刷新,例如:针对 example.com 站点下的 www.example.com 域名配置更提前的预刷新时间 - 60%。可参考以下步骤:
1. 登录 边缘安全加速平台 EO 控制台,在左侧菜单栏中,单击站点列表,在站点列表内单击需配置的站点。
2. 在站点详情页面,单击规则引擎。
3. 在规则引擎管理页面,单击创建规则,进入新规则的编辑页面。在规则编辑页面,选择 Host 为匹配类型,配置为 www.example.com
4. 单击操作,在弹出的操作列表内,选择操作为缓存预刷新,配置为 TTL 的60%。
5. 完整配置如下所示,单击保存并发布,即可完成该规则配置。


附:功能原理




假设指定图片 test.jpg 在节点缓存 TTL 为10秒,缓存预刷新时间为 TTL 的 80%(即8秒),则:
1. 节点首次收到客户端请求时,当前节点未缓存该文件,将回源拉取资源并缓存在节点,缓存 TTL 为10秒,在0-7秒内,如果再收到客户端请求,节点直接从缓存中提供资源,正常响应客户端请求;
2. 在该节点内缓存的 test.jpg 到达预刷新时间,在第8-10秒时,如果收到客户端请求,节点仍正常响应客户端请求,但同时会异步回源验证缓存资源是否有效;
若资源有效,则更新节点上的资源的缓存 TTL,重置为10秒;
若资源已失效,则从源站获取最新的有效资源至节点,并将其节点缓存 TTL 重置为10秒;
3. 如果超过文件在节点缓存 TTL 时,无客户端请求,则超过缓存 TTL 时间后资源将在节点上过期;
4. 节点下次收到客户端请求,节点会向源站发起回源请求验证资源是否有效,如果出现文件更新则回源拉取最新文件,否则重新缓存该文件并刷新缓存时间为 10秒。