当前位置: 首页 > news >正文

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

背景技术

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

http://www.cnnetsun.cn/news/14682.html

相关文章:

  • 使用STM32单片机进行串口通信的过程描述
  • JetBrains Maple Mono字体深度体验与配置指南
  • 【Java毕设源码分享】基于springboot+vue的个人博客系统的设计与实现(程序+文档+代码讲解+一条龙定制)
  • PaddleSpeech模型版本管理终极指南:从混乱到秩序
  • 闪电AI文档转换Lite:离线免费的全能文档处理神器
  • Windows系统pgvector一键部署攻略:告别编译烦恼,轻松开启向量搜索
  • 伊朗地毯数据集,波斯地毯Lechak-Toranj和Afshan图案分类,计算机视觉机器学习训练,纺织设计分析增强样本,装饰艺术特征提取对称检测算法,纹理分析Gabor滤波,个性化定制图案生成
  • [基础算法学习]backtrack回溯法(三):从N皇后、解数独带你掌握棋盘回溯问题
  • 终极指南:如何从零开始掌握Lean数学库mathlib?完整教程助你快速入门
  • Go之路 - 7.go的函数
  • Chet.QuartzNet.UI 基于VbenAdmin框架的现代化UI体验
  • AI 在泛前端领域的思考和实践-上篇
  • 靠谱的厦门考研哪个好选哪个
  • 高通万卫星:混合AI与分布式协同是未来 | MEET2026
  • AI图像编辑大师:InstructPix2Pix模型完全使用手册
  • 终极GASShooter游戏开发完整指南:快速构建高性能射击游戏
  • 零基础掌握Docker容器:5分钟快速上手实战指南
  • CppSharp完全指南:5步实现C++到.NET的自动化绑定
  • 解密 plum:三分钟打造你的专属 Rime 输入法生态
  • 边缘计算中的Agent资源调度难题:如何实现毫秒级响应与负载均衡?
  • 迭代器的初认识
  • 33、Linux 系统安全防护全攻略
  • 7亿参数改写边缘AI规则:LFM2-700M实现2倍推理提速与跨设备部署革命
  • AnuPpuccin Obsidian主题终极美化指南
  • 人工智能与应用
  • 3步搞定中文企业名称识别:480万语料库实战指南
  • 3步搞定ggplot2:R语言数据可视化的入门捷径
  • 主动学习集成方案:Llama-Factory减少人工标注依赖
  • 6B激活参数实现40B级性能:Ling-flash-2.0重新定义MoE模型效率标准
  • 终极Godot资源解包教程:快速提取游戏素材的完整指南