动态加速中优化失败路径反馈的方法

天翼云开发者社区
• 阅读 8

本文分享自天翼云开发者社区《动态加速中优化失败路径反馈的方法》.作者:尹****聪

1 背景

动态探测是周期性进行的,全局默认2分钟,支持分频道设置探测频率(最低1s探测频率),这就决定了选路也是周期性的,在两次最优路径更新的时间间隔内,如果回源链路发生波动,则只能依靠失败后重试来解决,如果域名并发量很大,同一时间可能产生大量重试,这样一方面客户体验不好,另一方面也加重了平台的压力。

2 方案

2.1 错误信息格式 路径失败主要包括两种类型,包括父层返回错误和源站返回错误(建联失败或者返回4xx,5xx),可以通过内部头,把产生错误的源地址、目的地址、目的端口,后端角色和时间戳返回给边缘。

2.2 错误信息存储 边缘需要对错误信息进行存储,并在选路时通过对选路信息和错误信息做对比,剔除掉已经置为不可用的路径信息。

边缘错误信息的存储有两种存储方式:一是lua的共享字典 shared.dict 方式,二是lua的 lrucache 方式

lua共享字典 shared.shict 使用的是共享内存,每次操作都是全局锁,如果高并发环境,不同 worker 之间容易引起竞争。所以单个 shared.dict 的体积不能过大。

lrucache 是 worker 内使用的,由于 Nginx 是单进程方式存在,所以永远不会触发锁,效率上有优势,并且没有 shared.dict 的体积限制,内存上也更弹性,但不同 worker 之间数据不同享,同一缓存数据可能被冗余存储。

比较了上述两种错误信息的存储方式,结合此功能的业务场景是应用在高并发时减少重试的次数,所以考虑使用 lrucache 更合适一些。这样实现出来的效果就跟 nginx 原生的 max_fails 和 fail_timeout 的配置效果相似了(nginx 原生的max_fails 和 fail_timeout 是在单 worker 内进行统计并起作用的)。

2.3 错误路径对比 (1)单位周期内发生M次错误

在单 worker 单位周期为 fail_timeout 设置的时间中,失败达到 max_fails 次数,那么接将把节点标记为不可使用,对于已经标记为down的节点,在这个周期中不再使用包含此节点的路径。

等待下一个周期(同样为fail_timeout)再一次去请求,判断能否连接能否成功,开启下一次的循环。

源ip,目的ip,目的端口加入到匹配判断当中,对于不符合的路径信息剔除掉

(2)连续发生N次错误

在单 worker 单位周期为 fail_timeout 设置的时间中,连续失败达到 conti_max_fails 次数,那么接将把节点标记为不可使用,对于已经标记为down的节点,在这个周期中不再使用包含此节点的路径。等待下一个周期(同样为fail_timeout)再一次去请求,判断能否连接能否成功,开启下一次的循环。

连续发生N次错误和单位周期内发生M次错误,两者是或的关系,当满足其中任何一个条件时,都把后端错误的节点置为down。

3 配置方式

源站的配置方式,可以针对不同源站设置不同的最大失败次数,连续失败次数和失败的超时时间, 父层属于内部节点没必要做分开统计,做成一个统一的配置项即可。

点赞
收藏
评论区
推荐文章
Stella981 Stella981
4年前
Kali Linux信息收集工具全集
001:0trace、tcptraceroute、traceroute描述:进行路径枚举时,传统基于ICMP协议的探测工具经常会受到屏蔽,造成探测结果不够全面的问题。与此相对基于TCP协议的探测,则成功率会有所提高,同时基于已经建立的合法TCP会话的探测则更具优势,甚至可以探测到目标内网。虽然没有银弹,但结合多种技术手段,则可以收集更加完整的目标信息,为后
天翼云CDN全站加速产品对websocket协议的支持
天翼云全站加速产品支持对webscoket协议和http/https协议可同时加速,即同一个域名可以既有http/https协议,又有websocket加速,您无需拆分域名,使用全站加速产品就可以实现对域名下http/https协议的应用和websocket协议的应用同时加速。全站加速节点会自动识别客户端与全站加速边缘节点通信使用的协议,自动切换协议。通常情况下,websocket协议的应用多为动态业务,对实时性要求很高,全站加速的动态探测选路能力可以为websocket应用选择最快的回源路径,提升websocket业务的访问效果。
京东搜索EE链路演进 | 京东云技术团队
本文将从搜索EE近期的全量迭代出发,展现其链路演进的整体脉络,包含:EE自适应动态探测模型——EE场景建模方式升级——打分与穿插两阶段一致性升级——探测与自然流量全局联动优化四个阶段,梳理对搜索EE的思考与下一步迭代方向。
玩转云端|演唱会一票难求?快用天翼云边缘安全加速平台AccessOne!
天翼云AccessOne基于覆盖全球的海量边缘节点,能够智能分离动静态内容,通过智能负载均衡技术,让静态内容在边缘节点进行缓存,保障用户就近接入边缘节点获取资源;对于动态内容,可通过智能选路、协议优化等技术,选择最/佳链路回源,同时提供协议优化、链路优化等多项优化技术,大大缩短内容传输距离和时间,加速抢购过程中的数据流转,有效降低延迟和抖动,保障用户交易。
ISCSI数据盘的多路径配置
本文分享自天翼云开发者社区《》,作者:wn•多路径出现的背景多路径,就是说,主机到存储可以有多条路径可以选择。主机到存储之间的IO由多条路径可以选择。每个主机到所对应的存储可以经过几条不同的路径,如果是同时使用的话,I/O流量如何分配?其中一条路径坏掉了,
HDFS目录配额(quota)不足导致写文件失败
本文分享自天翼云开发者社区《》,作者:5m问题背景与现象给某目录设置quota后,往目录中写文件失败,出现如下问题“TheDiskSpacequotaof/tmp/tquota2isexceeded”。omm@18939150115client$hdf
flinkcdc中checkpoint不成功问题排查
本文分享自天翼云开发者社区《》,作者:徐东使用flink1.16和flinkcdc3.0进行数据接入,采用standalone模式。运行一段时间后checkpoint开始失败,但日志中没有报错信息。因savepoint和checkpoint机制一致,使用手
一种CDN动态加速首次访问加速方法
本文分享自天翼云开发者社区《》.作者:蒋辉具体方案如下:1.对于全站加速,节点内部的探测采用的非请求触发式探测(已实现),在首次访问时,使用配置的顶层父方案作为回源节点回源,具体如下:masterparentarea:"area.parent1st.ctc
一种智能调度分布式路径计算解决方案
本文分享自天翼云开发者社区《》.作者:蒋辉背景技术传统的CDN动态加载智能路由系统对用户动态请求,主要通过探测服务器主动发起周期性的探测请求,探测CDN中转节点和源站的可用性及网络性能,根据探测结果选择最优的回源链路;然而,在获取到探测结果后,为了减少探测
nginx证书缓存功能
本文分享自天翼云开发者社区《》.作者:云海背景:ssl证书之前是不支持公用的,不同的域名,如果引用同一本证书,是无法公用的,每个域名都要加载同一个证书,浪费内存新版本:在1.27.2版本中,nginx官方更新了ssl证书相关的实现,支持了ssl证书缓存共享
天翼云开发者社区
天翼云开发者社区
Lv1
天翼云是中国电信倾力打造的云服务品牌,致力于成为领先的云计算服务提供商。提供云主机、CDN、云电脑、大数据及AI等全线产品和场景化解决方案。
文章
945
粉丝
16
获赞
40