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

本文分享自天翼云开发者社区《一种智能调度分布式路径计算解决方案》.作者:蒋辉

背景技术

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

2)实现中央路径计算服务异地多活,即同一时刻所有地区的中央路径计算服务器集群同时提供服务,且能够分摊不同地区的探测服务器的上报探测数据请求,降低单一中央路径计算服务器集群路径计算压力。此外,这种异地多活的分布式中央路径计算服务器集群架构方便后续扩容及服务器更新,便于管理与维护;

3)采用交换机OSPF的ECMP技术来实现中央路径计算服务器集群内部的负载均衡调度,相比传统的LVS+Keepalived负载均衡技术,节省了部署LVS及Keepalived软件的服务器资源。

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

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

相关文章

使用 C++ 和 minizip 实现 ZIP 压缩解压工具

在软件开发中,文件压缩和解压是常见的需求。今天我们来介绍一个基于 minizip 库的 C++ ZIP 工具类 - ZipUtility,它可以轻松地处理 ZIP 文件的创建和解压。这篇文章使用AI辅助编写。核心功能 1. 压缩功能 ZipUtility…

西部数码使用外部dns服务器怎么配置解析

西部数码使用外部dns服务器怎么配置解析在西部数码购买的域名如果使用的dns是外部的,要在该外部dns管理平台去设置解析 比如使用的阿里云的dns如何设置解析 在阿里云dns管理页面找到dns粘贴到西部数码该域名的解析地址…

一看就懂,Oracle认证体系中的OCP中级认证

对于刚接触Oracle数据库或者打算往数据库领域发展的人来说,需要了解一下这个认证:Oracle的中级认证OCP认证专家。 OCP认证全称为Oracle Certified Professional(甲骨文认证专家),是全球知名的IT技术认证体系之一,由…

实用指南:SDN 控制器深度剖析:架构、对比与实践部署

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

2025 年试验机生产厂家最新推荐榜单:聚焦优质企业,助力精准选购高低温等各类试验设备弹簧拉压/弹簧疲劳/高频弹簧疲劳/U型弹簧专用试验机厂家推荐

在工业生产与科研检测的关键环节,试验机对保障产品质量、验证材料性能起着不可替代的作用。随着市场需求激增,试验机生产厂家数量骤增,但行业乱象也随之显现,产品质量参差不齐、技术水平差距悬殊、服务体系不完善等…

IIS/如何查看IIS上部署网站的实时连接数

我们在IIS发布的Web网站,如何查看网站实时的连接数呢? 1、首先打开运行框,输入perfmon.msc 2、打开监视工具-->性能监视器 3、点击 “+”号,添加计数项 Web Service/Current Connections 4、可以查看到网站的实…

Supabase:无需后端代码的 Web 开发完整解决方案

在现代 Web 应用开发中,构建 MVP(最简可行产品)时,后端基础设施的搭建常常成为主要瓶颈。开发者需要处理数据库、API、用户认证、权限控制、文件存储等多个模块,开发成本较高。 Supabase 提供了一种替代方案:它以…

Halo RAG!

Halo AI 助手插件最新版本深度集成了 RAG 问答功能,支持将 Halo 文章或 Docsme 文档作为知识库,为访客提供智能问答服务。用户需先创建知识库,配置嵌入模型并选择内容范围以建立索引;随后创建问答应用,关联知识库…

拼叨叨砍价系统:实体店低成本引流的营销利器

在互联网营销深入各行业的当下,“砍一刀” 凭借强社交裂变属性,已成为大众熟知的营销模式。拼叨叨砍价系统基于这一模式,针对实体店商家营销痛点,打造出轻量化、易操作的砍价活动模块,支持微信公众号部署,能帮助…

2025 自动门生产厂家最新推荐榜:权威筛选优质品牌,含选购指南与实力厂家深度解析

在出入口自动化浪潮下,自动门已成为商业综合体、医院、工业厂区等场景的刚需设备,但其市场呈现 “繁荣与乱象并存” 的态势。部分品牌缺乏核心技术,产品故障率高、寿命短,无形中增加使用成本;售后体系缺失导致故障…

grafana-使用grafana-image-renderer:v4.0.17渲染仪表盘图像

grafana-使用grafana-image-renderer:v4.0.17渲染仪表盘图像v4.0.17需要grafana版本在11.3.8以上。我的是centos7, 升级grafana很简单,备份一下数据和配置,然后停掉grafana服务,然后使用【rpm -Uvh 新版本的rpm包 …

医德出诊排班挂号管理系统:医院高效运营与便民服务的智能解决方案

在数字化医疗浪潮下,传统挂号模式的低效、信息不透明等问题日益凸显,患者就医体验不佳,医院管理压力也持续增加。医德出诊排班挂号系统作为一款聚焦医疗服务场景的数字化工具,依托微信公众号生态,整合出诊排班、预…

一佳教育培训课程系统小程序:一站式教育数字化解决方案

在数字化教育浪潮下,培训机构对高效、多功能的线上教学管理工具需求迫切。一佳教育培训课程系统小程序应运而生,涵盖微信小程序版本,支持微擎系统交付,集课程管理、学员运营、营销推广、商城功能于一体,以加密源码…

SLS Copilot 实践:基于 SLS 灵活构建 LLM 应用的数据基础设施

本文将分享我们在构建 SLS SQL Copilot 过程中的工程实践,展示如何基于阿里云 SLS 打造一套完整的 LLM 应用数据基础设施。作者:顾汉杰(执少)"纸上得来终觉浅,绝知此事要躬行。" —— 陆游在 LLM 应用快…

2025 木饰面源头厂家最新推荐榜单:21 年标杆企业领衔,背景墙/全屋 /格栅/碳晶板全品类最新推荐及选购指南

木饰面市场正面临性能适配难、供货周期长、品质参差不齐的行业痛点:家装中潮湿区域需防水板材、高端空间看重环保平整度,公装对防火抗菌要求严苛,而大小订单交付失衡问题普遍。同时,近年新锐品牌涌现与技术迭代,让…

2025 年北京市清理化粪池公司最新推荐排行榜:聚焦高压技术与全城服务的权威甄选朝阳区/丰台区/海淀区/通州区清理化粪池厂家推荐

在城市化持续推进的当下,化粪池清理作为维护城市环境卫生、保障管道系统通畅的核心环节,其服务质量直接关系到居民生活舒适度与企业运营效率。然而当前行业乱象频发,部分企业设备陈旧导致清理不彻底,不仅残留污垢易…

报表方案Stimulsoft 2025.4 重磅发布!新增AI报表助手、C#脚本支持、全新图表类型等多项功能!

全球知名的报表解决方案服务商 Stimulsoft 正式发布2025.4 版本!该版本面向报表、仪表盘与可填写PDF表单的开发者,带来了多项令人期待的新特性,包括 Reports.JS 中运行 C# 脚本的支持、AI 智能报表助手、全新3D图表…

Prometheus的Exporter的数据采集机制

Prometheus的Exporter的数据采集机制Prometheus的Exporter采集器通过一套精巧的架构实现数据采集与暴露,而其个性化定制能力则得益于开放的客户端库和灵活的设计模式。下面我们深入解析其工作原理和定制方法。 🔄 E…

2025 年珠三角 / 中山 / 东莞 / 佛山厂房出售公司推荐:中创集团产业生态型厂房的价值与服务解析

在广东省 “坚持实体经济为本、制造业当家” 的发展导向下,《广东省加快扩大工业有效投资实施方案(2025—2027 年)》明确提出要打造高水平产业承载平台,聚焦新材料、生物医药、先进制造等新赛道培育主导产业。当前…

CTFshow-web方向(更新中)

萌新杯 intval与preg_match绕过方法: 进制绕过二进制或者八进制或者十六进制等等 双重取反~~绕过有时候需要编码需要绕过的字符$a=~("system"); echo urlencode($a);换行\n绕过 编码绕过SQL查询中,如果我们…