news 2026/6/9 23:15:58

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

作者头像

张小明

前端开发工程师

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/6/9 21:20:53

AI视频创作避坑指南:如何安全使用HunyuanVideo实现商业变现

AI视频创作避坑指南:如何安全使用HunyuanVideo实现商业变现 【免费下载链接】HunyuanVideo HunyuanVideo: A Systematic Framework For Large Video Generation Model 项目地址: https://gitcode.com/gh_mirrors/hu/HunyuanVideo 作为一名AI视频创作者&#…

作者头像 李华
网站建设 2026/6/9 7:49:39

Android多屏显示终极指南:SecondScreen让你的设备变身专业工作站

Android多屏显示终极指南:SecondScreen让你的设备变身专业工作站 【免费下载链接】SecondScreen Better screen mirroring for Android devices 项目地址: https://gitcode.com/gh_mirrors/se/SecondScreen 在当今数字化时代,Android多屏显示已成…

作者头像 李华
网站建设 2026/6/6 0:26:35

Spring Modulith终极指南:如何用模块化架构轻松构建大型应用

Spring Modulith终极指南:如何用模块化架构轻松构建大型应用 【免费下载链接】spring-modulith Modular applications with Spring Boot 项目地址: https://gitcode.com/gh_mirrors/sp/spring-modulith Spring Modulith是Spring官方推出的模块化开发框架&…

作者头像 李华
网站建设 2026/6/9 21:00:00

Python数据分析快速入门:从零开始掌握数据科学核心技能

Python数据分析快速入门:从零开始掌握数据科学核心技能 【免费下载链接】pyda-2e-zh :book: [译] 利用 Python 进行数据分析 第 2 版 项目地址: https://gitcode.com/gh_mirrors/py/pyda-2e-zh 想要快速掌握Python数据分析技能?《利用Python进行…

作者头像 李华
网站建设 2026/6/9 19:54:11

创业前需要了解哪些市场情况?

创业前需要了解哪些市场情况?春芽惠企总结以下几点↓市场调研是前提:先摸清赛道情况,看看同行竞品的优劣势,明确自身产品或服务的核心差异。精准捕捉目标客户的需求与痛点,才能在竞争中找到突围机会。选对公司类型&…

作者头像 李华
网站建设 2026/6/9 18:44:26

FourierKAN终极指南:构建下一代神经网络层的完整教程

FourierKAN终极指南:构建下一代神经网络层的完整教程 【免费下载链接】FourierKAN 项目地址: https://gitcode.com/GitHub_Trending/fo/FourierKAN 在深度学习领域,传统的线性层配合非线性激活函数的组合已经统治了多年。然而,随着模…

作者头像 李华