写点什么

一种 CDN 动态加速首次访问加速方法

  • 2025-09-25
    北京
  • 本文字数:1939 字

    阅读完需:约 6 分钟

本文分享自天翼云开发者社区《一种CDN动态加速首次访问加速方法》.作者:蒋辉

具体方案如下:

1. 对于全站加速,节点内部的探测采用的非请求触发式探测(已实现),在首次访问时,使用配置的顶层父方案作为回源节点回源,具体如下:

master_parent_area: "area.parent1st.ctcdn.com"             #动态区域中心的主域名,分区域解析backup_parent_area: "area.parent2nd.ctcdn.com"             #动态区域中心的备份域名,分区域解析master_parent_country: "country.parent1st.ctcdn.com"           #动态全国中心的主域名,做全量解析backup_parent_country: "country.parent2nd.ctcdn.com"           #动态全国中心的备份域名,做全量解析master_parent_area_all: "area_all.parent1st.ctcdn.com"         #动态区域中心全量解析的主域名,该域名允许配置为空backup_parent_area_all: "area_all.parent2nd.ctcdn.com"         #动态区域中心全量解析的备份域名,该域名允许配置为空
复制代码

1)由于边缘主机角色,只会解析动态区域中心的主域名,只有当主域名解析失败或没配置,才解析动态区域中心的备份域名,并对区域父进行探测;而全站加速只有边缘主机会进行动态路径设置,所以,针对首次访问加速,边缘需要额外根据源站 ip 进行 edns 解析顶层父方案的域名并进行探测,顶层父方案定义:


  • 若配置了动态全国中心的主域名 master_parent_country 且解析不为空,则顶层父方案为 master_parent_country 配置的父方案;否则,配置了动态全国中心的备域名 backup_parent_country 且解析不为空,则顶层父方案为 backup_parent_country 配置的父方案域名;

  • 如果没有配置动态全国中心的主备域名或解析都为空,若配置了动态区域中心全量解析的主域名 master_parent_area_all 且解析不为空,则顶层父方案为 master_parent_area_all 配置的父方案;否则,若配置了动态区域中心全量解析的备域名 backup_parent_area_all 且解析不为空,则顶层父方案为 backup_parent_area_all 配置的父方案;

  • 如果没有配置动态全国中心的主备域名或解析都为空、且没有配置动态区域中心全量解析的主备域名或解析都为空,若配置了动态区域中心分区域解析的主域名且解析不为空,则顶层父方案为 master_parent_area 配置的父方案;否则,配置了动态区域中心分区域解析的备域名且解析不为空,则顶层父方案为 backup_parent_area 配置的父方案;


2)将顶层父方案作为全站加速频道的回源节点与中转节点一起(回源节点和中转节点进行去重)加入到内部抽象域名 dynamic.inner.ctyun.cn 的探测中,并将顶层父方案解析出来的父节点列表按照频道粒度作为回源节点 vip 进行保存,上报 dynamic.inner.ctyun.cn 频道的所有父节点探测数据到 ccs,ccs 下发该频道的两两节点的最优路径到 agent,agent 对于不活跃的频道设置首次访问的加速路径,路径拼接逻辑如下:


a)查找所有属于加速频道的回源节点 vip 路径;

b)agent 获取到本节点到回源节点的最优路径后,判断该路径中的中转节点(除回源父节点外)是否在该频道使用的资源池里面,如果不在里面则过滤掉;

c)剩余的路径再与源站 ip 进行路径拼接,每个源站 ip 可能存在多条回源路径,如果配置的是非 fastest_simple 回源策略,则将其中一条回该源站 ip 的回源路径放在 path,其他回该源站 ip 的回源路径放在 backup_paths 的数组中供网关访问失败重试;否则,对于 fastest_simple 回源策略,将所有源站 ip 的多条回源路径进行混排,并放在 path 中,按照随机的顺序进行排序,backup_paths 的数组为空;


3)删除全站加速原来根据源站 ip 进行源站区域覆盖解析组域名的 edns 解析及回源节点 vip 列表的更新,根据顶层父方案解析的回源节点来更新探测的回源节点 vip 列表,并添加回源节点 vip 的探测计数,针对旧的回源节点 vip 探测,如果其他频道都没有再探测,则直接剔除该回源节点 vip 的探测,并清理其探测数据;


2. 对于应用加速,由于没有规划父方案,都是采用节点互探的机制来进行动态选路,因此,不能使用和全站加速一样的方案来解决首次访问加速的问题,考虑到应用加速资源池数量少,维护管理起来没有全站加速那么复杂,仍然采用用户上网加速及首次访问加速优化方案,并在原来方案的基础上,增加回源节点是否在频道配置的资源池的判断,过滤掉不在频道资源池的回源节点路径,当没有任何可用路径时,则进行首次访问加速空路径的告警。


3. 执行分频道热加载及全局 reload 时,以下几种场景会立即重新按照首次访问动态加速拼接路径给网关:

  • 回源策略变更;

  • 源站 ip 列表及协议、端口变更;

  • 父节点 ip 列表及协议、端口变更;

  • 首次访问加速(还未触发探测选路或动态路径设置到网关失败);

备注:如果没有可用的首次访问加速拼接路径,则调用/roledel 接口清空网关共享内存的动态路径,避免网关仍然使用旧路径。

废弃 detect_conf_module 配置块中的 origin_view_cover 配置项

用户头像

还未添加个人签名 2022-02-22 加入

天翼云是中国电信倾力打造的云服务品牌,致力于成为领先的云计算服务提供商。提供云主机、CDN、云电脑、大数据及AI等全线产品和场景化解决方案。

评论

发布
暂无评论
一种CDN动态加速首次访问加速方法_CDN_天翼云开发者社区_InfoQ写作社区