news 2026/11/1 3:35:28

一种智能调度分布式路径计算解决方案

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
一种智能调度分布式路径计算解决方案

背景技术

传统的CDN动态加载智能路由系统对用户动态请求,主要通过探测服务器主动发起周期性的探测请求,探测CDN中转节点和源站的可用性及网络性能,根据探测结果选择最优的回源链路;

然而,在获取到探测结果后,为了减少探测服务器的计算压力,通常将探测和选路功能模块分离在不同的服务器或服务器集群完成,选路采用特殊的服务器(一般是BGP的高配机器)作为中央路径计算服务器,探测服务器上报探测数据到中央路径计算服务器,中央路径计算服务器则根据上报的探测数据计算回源路径,从中选择最优的回源链路。

为了实现中央路径计算的高可用,现有的中央路径计算服务器架构有的是只部署在某个地区的服务器集群,这种方式无法满足不同地区的探测服务器就近上报探测数据到同个地区的中央路径计算服务器,从而可能造成上报探测数据延时大甚至失败的问题,此外,一旦该地区的机房掉电或割接,则无法进行最优回源路径的计算;有的是部署在多个不同地区,但采用主备架构,这种方式虽然能解决某个地区机房掉电的问题,但会导致备的中央路径计算服务器大部分情况下都闲置,而主的中央路径计算服务器却处于高负载处理请求数据的状态,这样不仅浪费资源,无法均衡地分摊不同地区探测服务器上报探测数据的请求,后续也不方便对集群进行扩容和更改。

鉴于此,本文将提供一种智能调度分布式的路径计算解决方案,它具有以下3个方面的特点:

1)实现不同地区的探测服务器上报探测数据的请求能够优先就近调度到相同地区的中央路径计算服务器集群,只有当相同地区的中央路径计算服务器集群服务不可用时,才将探测服务器上报的探测数据请求调度到其他地区的中央路径计算服务器集群;

2)实现不同地区的探测服务器上报探测数据的请求均衡地分摊到不同地区的中央路径计算服务器集群,且同一时刻所有地区的中央路径计算服务器集群同时提供服务;

3)实现相同地区的探测服务器上报探测数据的请求在相同地区的中央路径计算服务器集群内部进行均衡地调度,并能及时剔除集群内部服务异常的服务器;

技术方案

本文提出的智能调度分布式的路径计算解决方案,采用交换机OSPF的ECMP技术来实现中央路径计算服务器集群内部的负载均衡调度,同时基于dns智能调度实现跨地区集群间的负载均衡,具体技术方案原理如下图所示:

技术方案主要步骤如下:

1)每个中央路径计算服务器集群都分配一个对外接入的vip,为中央路径计算系统分配提供服务的域名,dns解析能够正常解析到中央路径计算服务器集群的vip;

2)A地区的探测服务器发起探测数据上报请求到中央路径计算系统,通过dns智能解析将请求优先调度到与探测服务器相同A地区的中央路径计算服务器集群vip,实现探测数据上报请求的就近调度;

3)监控平台定时采集探测A、B等多个地区的中央路径计算服务器集群vip的心跳探测请求结果,dns智能调度平台获取每个地区的中央路径计算服务集群的心跳探测结果,一旦发现就近调度的中央路径计算服务集群vip的心跳探测失败,则dns智能调度切换到其他正常服务的中央路径计算服务集群;

下图所示为监控平台定时采集的华东-衢州、华中-株洲、华北-和平3个地区的中央路径计算服务器集群vip的心跳探测请求结果,ccs_probe探测结果为1表示集群服务正常,为0表示集群服务异常。

4)请求到达A地区机房的交换机后,通过交换机的OSPF负载均衡技术(ECMP等价多路径)发送组包来探测与后端真实中央路径计算服务器的连通性,如果其中某条路径出现故障时,由其它路径代替完成转发处理,实现路由冗余备份功能;

5)集群服务监控脚本定时监测中央路径计算服务器服务是否正常(包括向中央路径计算应用程序发送心跳探测是否正常、Redis应用程序端口是否监听等),如果服务异常,则通过路由软件Quagga修改交换机到该中央路径计算服务器的路由不可达,这样交换机负载均衡调度时不会再将请求调度到服务异常的中央路径计算服务器;

6)中央路径计算服务器集群内部每台中央路径计算服务器上部署的中央路径计算应用程序负责接收探测服务器上报的探测数据,将探测数据存储到本机的Redis中,集群内部通过Redis应用程序实现不同中央路径计算服务器之间探测数据的主从同步与备份;

为了方便Redis集群部署,这里采用脚本自动化的方式来实现,如下所示:

脚本执行步骤如下:

a)分别登陆不同地区机房的不同节点(这里选择A、B、C三个地区机房,每个机房3台机器为例),进行redis集群配置部署,执行如下命令:

./cluster_redis_config.sh -p xxxxxxxxxxxxxxxxxxxxxx (需要指定redis秘钥)

其中:cluster_redis_config.sh关键脚本如下:

b)分别在上述三个机房中选择1台机器,进行redis集群创建及master、slave的redis设置

A地区机房机器(其中1台)执行命令:./cluster_redis_build.sh -c 221.238.221.7, 221.238.221.8, 221.238.221.9

B地区机房机器(其中1台)执行命令:./cluster_redis_build.sh -c 202.106.245.4,202.106.245.5,202.106.245.6

C地区机房机器(其中1台)执行命令:./cluster_redis_build.sh -c 218.79.202.7,218. 79.202.8,218. 79.202.9

其中:cluster_redis_build.sh关键脚本如下:

7)探测服务器上报的探测数据经过智能调度和交换机负载均衡调度到同地区的中央路径计算服务器集群中的某台中央路径计算服务器后,由其主动向其他地区的中央路径计算服务器集群vip发起上报探测数据请求,这样所有地区的中央路径计算服务器集群都能获取到相同的探测数据,实现跨集群探测数据的同步;

本文提出的一种智能调度分布式路径计算解决方案,具有如下优势:

1)能够满足不同地区的探测服务器上报探测数据的请求能够优先就近调度到相同地区的中央路径计算服务器集群,只有当相同地区的中央路径计算服务器集群服务不可用时,才将探测服务器上报的探测数据请求调度到其他地区的中央路径计算服务器集群,这样能够提高上报探测数据的成功率,降低上报探测数据的请求延时;

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/31 18:21:31

使用STM32单片机进行串口通信的过程描述

STM32F103 串口通信实现全指南本文以 STM32F103C8T6(最小系统板)为例,详细讲解串口通信的硬件连接、软件配置、代码实现及调试问题解决方案,分别覆盖标准外设库(STM32F10x_StdPeriph_Driver) 和HAL 库两种主…

作者头像 李华
网站建设 2026/10/31 9:34:00

JetBrains Maple Mono字体深度体验与配置指南

JetBrains Maple Mono字体深度体验与配置指南 【免费下载链接】Fusion-JetBrainsMapleMono JetBrains Maple Mono: The free and open-source font fused with JetBrains Mono & Maple Mono 项目地址: https://gitcode.com/gh_mirrors/fu/Fusion-JetBrainsMapleMono …

作者头像 李华
网站建设 2026/10/30 22:02:31

【Java毕设源码分享】基于springboot+vue的个人博客系统的设计与实现(程序+文档+代码讲解+一条龙定制)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

作者头像 李华
网站建设 2026/11/1 2:18:17

PaddleSpeech模型版本管理终极指南:从混乱到秩序

PaddleSpeech模型版本管理终极指南:从混乱到秩序 【免费下载链接】PaddleSpeech Easy-to-use Speech Toolkit including Self-Supervised Learning model, SOTA/Streaming ASR with punctuation, Streaming TTS with text frontend, Speaker Verification System, E…

作者头像 李华
网站建设 2026/11/1 14:48:22

闪电AI文档转换Lite:离线免费的全能文档处理神器

闪电AI文档转换Lite:离线免费的全能文档处理神器 【免费下载链接】convert-lite flashai-convert-lite,离线免费文档转换工具,支持pdf to markdown,word to markdown,excel to markdown,ppt to markdown, html to markdown,image to markdown…

作者头像 李华
网站建设 2026/11/1 5:48:16

Windows系统pgvector一键部署攻略:告别编译烦恼,轻松开启向量搜索

还在为pgvector在Windows上的安装而头疼吗?🤔 别担心,今天我带你绕开所有坑点,用最简单的方式在Windows系统上成功部署这个强大的PostgreSQL向量搜索扩展!无论你是AI开发者还是数据库爱好者,都能在10分钟内…

作者头像 李华