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

本文分享自天翼云开发者社区《一种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配置项

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/917383.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CF1716题解

CF1716A 不难发现,只保留一个1即可,其余的怎么变都可以,所以变成k个后,直接取max在序列中有1的情况下必然可以构造出来点击查看代码 #include<bits/stdc++.h> using namespace std; const int N=55; int t,n…

使用vosk模型进行语音识别

模型分享: 通过网盘分享的文件:vosk-model-small-cn-0.22.zip链接: https://pan.baidu.com/s/1FEH1xwDucdC3cEZSAyDOwQ?pwd=k8p5 提取码: k8p5 通过网盘分享的文件:vosk-model-cn-0.22.zip链接: https://pan.baidu…

国外 网站设计中国住房和城乡建设部网站资质查询

文章目录 前言一、技术是推动社会发展的基本动力1.人为什么能成为万物之长呢&#xff1f;2.人为什么要发明工具&#xff0c;进行进化呢&#xff1f;3.人是如何发明工具的&#xff1f;4.为什么要有不同的岗位和行业&#xff1f; 二、计算机(操作系统)发展的基本脉络1.第一台计算…

网站做实名验证成都广告设计培训班

世界上只有一种英雄主义&#xff0c;就是看清生活的真相之后依然热爱生活。对于 Lombok 我相信大部分人都不陌生&#xff0c;但对于它的实现原理以及缺点却鲜为人知&#xff0c;而本文将会从 Lombok 的原理出发&#xff0c;手撸一个简易版的 Lombok&#xff0c;让你理解这个热门…

AI Agent如何重塑人力资源管理?易路iBuilder平台实战案例深度解析

来源|商学院9月刊 文|吕笑颜 ID | BMR2004 导读:本文深度报道了易路iBuilder作为国内首个HR垂直AI Agent操作系统,如何通过39个智能体全面重构人力资源管理价值链。文章基于对易路CEO王天扬的专访,系统阐述了iBui…

docker-compose + macvlan + Elasticsearch - 9.1.4 + Kibana - 9.1.4

操作过程创建工作目录mkdir -p /opt/porsCloud/24-elastic进入工作目录cd /opt/porsCloud/24-elastic创建必要的目录mkdir es_conf es_data es_logs es_plugins kibana_conf kibana_data赋予权限chown -R 1000:0 es_co…

WinForm 计时器 Timer 学习笔记

1. Timer 是干啥的? 就是个“自动闹钟”: 你设定每隔多少毫秒(比如 1000 毫秒 = 1 秒),它就自动执行一段代码。 常见用途:实时显示时间 倒计时 定时刷新数据 轮询状态2. 怎么用?三步搞定(WinForm 拖控件方式)…

RocketMQ入门:基本概念、安装、本地部署与集群部署 - 详解

RocketMQ入门:基本概念、安装、本地部署与集群部署 - 详解pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consol…

重庆制作网站公司简介梵克雅宝五花手链

React中的“端口&#xff08;Portals&#xff09;”是一种将子节点渲染到DOM****树以外的部分的技术。在React应用中&#xff0c;通常情况下组件的渲染是遵循DOM的层次结构&#xff0c;即子组件会渲染在父组件的DOM节点内部。然而&#xff0c;有些情况下&#xff0c;开发者可能…

【LeetCode】122. 买卖股票的最佳时机 II

122. 买卖股票的最佳时机 II 区间内,差值最大,注意并不是最低值和最大值差值就是最大,例如,3,7,1,3,4。差值最大是7-3 解法一若价格一直往下跌,不买入 假设第一天买入,若买入后价格往下跌,应该下一天买入 若…

VSCode 使用技巧笔记

VSCode 笔记备忘插件Git History (donjayamanne.githistory)可以按行查看 git 历史记录Git Graph (mhutchie.git-graph)Bookmarks (alefragnani.bookmarks)highlight (debugpig.highlight)高亮选中的词 小技巧选择包含…

Ansible + Docker 部署 Apache Kafka 3.9 集群

Ansible + Docker 部署 Apache Kafka 3.9 集群1. 准备工作 1.2 主机列表IP 主机名 内存(GB) CPU核数 磁盘 操作系统 CPU 架构10.0.0.13 arc-pro-dc01 my.registry.com 16 1 500GB CentOS 7.9.2009 x86_6410.0.0.14…

深入了解一波JVM内存模型

深入了解一波JVM内存模型 JDK体系结构与跨平台特性介绍通过官方的结构图看出,JVM提供底层的平台支持,JRE提供运行环境所必须的类,在这个基础上去跑我们的java程序。JVM为我们屏蔽了操作系统的差异性,使java程序得以…

完整教程:K230基础-PWM控制介绍及应用

完整教程:K230基础-PWM控制介绍及应用pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Mon…

什么是UDFScript用户自定义脚本

本文分享自天翼云开发者社区《什么是UDFScript用户自定义脚本》.作者:郭****迎 UDFScript介绍 用户自定义脚本(User Defined Script,简称UDFScript)是一个可供您快速实现CDN定制化配置的工具箱,当CDN的标准配置无…

高端网站设计中的微交互:细节如何决定用户体验

高端网站设计中的微交互:细节如何决定用户体验在高端网站设计的语境下,“视觉审美”已经不再是唯一的竞争点。真正能打动用户、建立长期信任的,是那些嵌入在每一次操作、点击、过渡中的细节优化。微交互(Microinte…

合肥建设干部学校网站首页凡科 做网站

[原创]好买财富接口测试自动化实践

安徽建设工程信息网站广西建设工程协会网站

项目hbase数据库出现很诡异的assignment &#xff0c;region移动的src和dest都是同一台regionserver&#xff0c;不过时间戳不同&#xff0c;启动的只有一个regionserver&#xff0c; 不知道怎么出现了两个时间戳 分析下源码解决一下 loadbalance只有一个实现 org.apache.hado…

软件开发公司如何通过 UI 设计服务打造差异化竞争力

软件开发公司如何通过 UI 设计服务打造差异化竞争力在数字化浪潮推动下,软件开发行业的竞争越来越激烈。功能上的差异化正逐渐缩小,技术壁垒也因开源生态与低代码平台而降低。在这种背景下,UI设计服务逐渐成为软件开…

CCPC2024-Zhengzhou G Same Sum(线段树)

CCPC2024-Zhengzhou G Same Sum 给一个序列。两种操作:区间加;查询一个偶数长区间,其中的值是否可以两两配对得到和相等。首先知道区间内的值两两配对得到的相等的和值为区间的平均数 m 。 可以转化为,这个区间的值…