首页> 中国专利> 一种拓扑感知的负载均衡方法、装置及计算机设备

一种拓扑感知的负载均衡方法、装置及计算机设备

摘要

本发明公开了一种拓扑感知的负载均衡方法,包括:获取用户下发的负载均衡配置信息,并基于配置信息判断负载均衡的若干后端服务端点是否位于不同节点;若是负载均衡的若干后端服务端点位于不同节点,向不同节点定时下发对各自节点上若干后端服务端点轮询的命令,以获取不同节点的拓扑信息、后端服务端点的健康状态和链路质量;基于拓扑信息、健康状态和链路质量,计算得到后端服务端点的优先级,并基于优先级设置均衡负载的服务响应端点;以及响应于拓扑信息发生变化和/或健康状态和/或链路质量发生变化,重新计算后端服务端点的优先级,并基于优先级调整服务响应端点。本发明还公开了一种拓扑感知的负载均衡装置和计算机设备。

著录项

  • 公开/公告号CN113225403A

    专利类型发明专利

  • 公开/公告日2021-08-06

    原文格式PDF

  • 申请/专利权人 苏州浪潮智能科技有限公司;

    申请/专利号CN202110771506.2

  • 发明设计人 李丰启;

    申请日2021-07-08

  • 分类号H04L29/08(20060101);H04L12/24(20060101);H04L12/26(20060101);

  • 代理机构11278 北京连和连知识产权代理有限公司;

  • 代理人刘小峰;陈黎明

  • 地址 215000 江苏省苏州市吴中经济开发区郭巷街道官浦路1号9幢

  • 入库时间 2023-06-19 12:07:15

说明书

技术领域

本发明涉及负载均衡技术领域,尤其涉及一种拓扑感知的负载均衡方法、装置及设备。

背景技术

在云计算时代,业务改造上也不断地开展,伴随着云计算的不断发展,云计算数据中心规模越来越大,在大规模数据中心环境下通过合理规划、技术优化使在硬件资产固定的情况下单位计算资源所承载的计算密度越来越高,而在硬件资产固定的情况下网络带宽资源也是固定的,数据中心的网络带宽资源越来越珍贵,如何合理高效的利用固定的网络带宽资源为用户提供最优质的服务是当前数据中心亟需解决的问题。

传统的负载均衡策略无法感知负载均衡后端服务端点的拓扑信息,导致两个问题:第一,负载均衡系统无法有效、合理的规划后端服务端点资源,导致为负载均衡前端提供服务的后端服务端点不是最优的,用户体验差、不能合理利用数据中心资源;第二,用户可以通过合理规划负载均衡后端服务端点的拓扑,以达到系统最优,但是当负载均衡后端服务端点拓扑因故障、计算资源不足等问题而导致变动,系统无法自动调整负载均衡规则,而需要运维人员根据新的拓扑手动重新调整,导致出错风险大、运维成本高。

发明内容

有鉴于此,本发明实施例的目的在于提出一种拓扑感知的负载均衡方法、装置及计算机设备,使用拓扑感知与链路质量感知的方式根据优先级算法计算负载均衡后端服务端点的优先级,选择最优后端服务端点作为负载均衡服务后端,同时当网络状态发生变化或后端服务端点拓扑发生变化时负载均衡可以自动适配最新的拓扑与链路状态,在不升级硬件的基础上充分利用了数据中心网络链路带宽资源为用户带来最好的使用体验,同时能够实时感知后端服务端点拓扑状态变化与网络链路质量变化,及时调整负载均衡后端服务端点的优先级,始终优先选择最优后端服务端点为负载均衡提供服务。避免了传统负载均衡器无法感知后端服务端点拓扑与链路质量的缺陷同时也避免了管理员手动调整带来的繁琐工作与变更风险。

基于上述目的,本发明实施例的一方面提供了一种拓扑感知的负载均衡方法,包括以下步骤:获取用户下发的负载均衡配置信息,并基于配置信息判断负载均衡的若干后端服务端点是否位于不同节点;若是负载均衡的若干后端服务端点位于不同节点,向不同节点定时下发对各自节点上若干后端服务端点轮询的命令,以获取不同节点的拓扑信息、若干后端服务端点的健康状态和链路质量;基于拓扑信息、健康状态和链路质量,计算得到若干后端服务端点的优先级,并基于优先级设置均衡负载的服务响应端点;以及响应于拓扑信息发生变化和/或健康状态和/或链路质量发生变化,重新计算若干后端服务端点的优先级,并基于优先级调整服务响应端点。

在一些实施方式中,还包括:由不同节点的拓扑感知模块对各自节点上若干后端服务端点进行定时轮询,以获取不同节点的拓扑信息,并将拓扑信息上传到控制模块;由不同节点的健康监测模块对各自节点上若干后端服务端点进行定时轮询,以获取若干后端服务端点的健康状态和链路信息,并将健康状态和链路信息上传到控制模块。

在一些实施方式中,响应于拓扑信息发生变化和/或健康状态和/或链路质量发生变化包括:由拓扑感知模块获取当前拓扑信息,并判断当前拓扑信息与上次获取的拓扑信息是否相同;若是当前拓扑信息与上次获取的拓扑信息不同,确认拓扑信息发生变化,并将当前拓扑信息上传到控制模块;由健康监测模块获取当前健康状态和当前链路信息,并将当前健康状态和当前链路信息上传到控制模块,并由控制模块基于当前健康状态和当前链路信息与上次获取的健康状态和链路信息判断健康状态和链路质量是否发生变化。

在一些实施方式中,还包括:若是当前拓扑信息与上次获取的拓扑信息相同,确认拓扑信息未发生变化,则不会将当前拓扑信息上传到控制模块。

在一些实施方式中,基于拓扑信息、健康状态和链路质量,计算得到若干后端服务端点的优先级包括:基于链路质量中的链路开销计算得到链路平均开销,并基于链路平均开销、拓扑权重、链路权重、链路开销权重、链路稳定性权重、延迟变更权重计算得到若干后端服务端点的负载均衡优先级。

在一些实施方式中,基于链路平均开销、拓扑权重、链路权重、链路开销权重、链路稳定性权重、延迟变更权重计算得到若干后端服务端点的负载均衡优先级包括:通过如下公式计算若干后端服务端点的优先级:

其中,A

在一些实施方式中,基于优先级设置均衡负载的服务响应端点包括:将若干后端服务端点的优先级按照从高到低排序,并将优先级最高的后端服务端点作为负载均衡的服务响应端点。

在一些实施方式中,基于优先级调整服务响应端点包括:将若干后端服务端点重新计算得到的优先级按照从高到低排序,并将重新计算得到的优先级最高的后端服务端点作为负载均衡的服务响应端点。

本发明实施例的另一方面,还提供了一种拓扑感知的负载均衡装置,包括:第一模块,配置用于获取用户下发的负载均衡配置信息,并基于配置信息判断负载均衡的若干后端服务端点是否位于不同节点;第二模块,配置用于若是负载均衡的若干后端服务端点位于不同节点,向不同节点定时下发对各自节点上若干后端服务端点轮询的命令,以获取不同节点的拓扑信息、若干后端服务端点的健康状态和链路质量;第三模块,配置用于基于拓扑信息、健康状态和链路质量,计算得到若干后端服务端点的优先级,并基于优先级设置均衡负载的服务响应端点;以及第四模块,配置用于响应于拓扑信息发生变化和/或健康状态和/或链路质量发生变化,重新计算若干后端服务端点的优先级,并基于优先级调整服务响应端点。

本发明实施例的再一方面,还提供了一种计算机设备,包括:至少一个处理器;以及存储器,存储器存储有可在处理器上运行的计算机指令,指令由处理器执行时实现上述方法的步骤。

本发明具有以下有益技术效果:解决大规模数据中心环境下负载均衡性能不高、无法实时根据负载均衡后端服务端点拓扑状态调整链路的问题,通过对负载均衡器后端服务端点的拓扑进行感知,并根据拓扑感知结果调整负载均衡,实现负载均衡性能最优化,极大提升网络带宽资源利用率与用户使用体验。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的实施例。

图1为本发明提供的拓扑感知的负载均衡方法的实施例的示意图;

图2为本发明提供的拓扑感知的负载均衡装置的实施例的示意图;

图3为本发明提供的计算机设备的实施例的示意图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明实施例进一步详细说明。

需要说明的是,本发明实施例中所有使用“第一”和“第二”的表述均是为了区分两个相同名称非相同的实体或者非相同的参量,可见“第一”“第二”仅为了表述的方便,不应理解为对本发明实施例的限定,后续实施例对此不再一一说明。

基于上述目的,本发明实施例的第一个方面,提出了拓扑感知的负载均衡方法的实施例。图1示出的是本发明提供的拓扑感知的负载均衡方法的实施例的示意图。如图1所示,本发明实施例包括例如在控制模块中执行如下步骤:

S01、获取用户下发的负载均衡配置信息,并基于配置信息判断负载均衡的若干后端服务端点是否位于不同节点;

S02、若是负载均衡的若干后端服务端点位于不同节点,向不同节点定时下发对各自节点上若干后端服务端点轮询的命令,以获取不同节点的拓扑信息、若干后端服务端点的健康状态和链路质量;

S03、基于拓扑信息、健康状态和链路质量,计算得到若干后端服务端点的优先级,并基于优先级设置均衡负载的服务响应端点;以及

S04、响应于拓扑信息发生变化和/或健康状态和/或链路质量发生变化,重新计算若干后端服务端点的优先级,并基于优先级调整服务响应端点。

在本实施例中,主要应用于大规模数据中心环境下的负载均衡,对负载均衡后端服务端点的拓扑进行感知,根据拓扑感知结果调整负载均衡提供服务的后端服务端点,实现负载均衡性能最优化。当后端服务端点因故障、计算资源等问题导致拓扑改变时,负载均衡器可以根据收集到的最新拓扑信息调整链路,极大提升网络带宽资源利用率与用户使用体验。

在本实施例中,拓扑感知的负载均衡主要包括拓扑感知模块、控制模块、健康检测模块与事件处理模块。控制模块负责完成用户配置负载均衡规则的下发与负载均衡服务服务的呈现,控制模块是整个系统的中枢模块,控制模块同时与拓扑感知模块、健康检测模块与事件处理模块交互,根据交互结果智能分析并自动选择最优链路的负载均衡后端服务端点为负载均衡提供服务。拓扑感知模块根据控制模块下发的后端服务端点信息负责感知后端服务端点的拓扑信息,并将感知到的拓扑信息通过事件模块发送到控制模块,拓扑感知模块还感知后端服务端点拓扑变化,当感知到BACKEND拓扑发生变化,拓扑感知模块将新的拓扑通过事件发送到控制模块,拓扑感知模块在启用负载均衡功能时在节点上启用,但仅有后端服务端点所在节点才会上报拓扑事件信息。健康检测模块负责根据控制模块下发的后端服务端点信息进行健康检测,需要说明的是,控制模块可以根据健康检测模块检测结果感知后端服务端点的健康状态与链路状态。事件处理模块负责事件的产生与处理,是各个模块之间消息传递的通道。

在本实施例中,用户根据需要开启负载均衡功能并配置后端服务端点,一般情况下,出于灾备、高可用等因素考虑,不同的后端服务端点会选择不同的节点部署;控制模块收到用户的负载均衡配置信息,根据配置信息下发规则到节点:若负载均衡后端服务端点位于同一节点,则不需要根据拓扑感知模块上报的拓扑信息,对后端服务端点进行轮询处理;若负载均衡后端服务端点位于不同节点,控制模块首先根据健康检测模块上送的后端服务端点健康状态对后端服务端点进行轮询处理以保证负载均衡服务即时可用,同时节点上的拓扑感知模块开始感知并上传后端服务端点的拓扑信息到控制模块,当控制模块获取到所有节点上送的后端服务端点拓扑信息后根据后端服务端点的拓扑信息与健康上报的后端服务端点健康状态与链路质量,综合计算选择最优的后端服务端点并调整各个后端服务端点的优先级,从而实现优先选择拓扑与链路质量最佳的后端服务端点作为负载均衡的服务响应端点。

在本实施例中,若系统运行过程中负载均衡后端服务端点拓扑发生变化,拓扑检测模块上报新的拓扑关系,控制模块根据最新的拓扑信息与健康检测信息重新计算是否需要调整后端服务端点的优先级以到达最佳网络性能。

在本发明的一些实施例中,还包括:由不同节点的拓扑感知模块对各自节点上若干后端服务端点进行定时轮询,以获取不同节点的拓扑信息,并将拓扑信息上传到控制模块;由不同节点的健康监测模块对各自节点上若干后端服务端点进行定时轮询,以获取若干后端服务端点的健康状态和链路信息,并将健康状态和链路信息上传到控制模块。

在本发明的一些实施例中,响应于拓扑信息发生变化和/或健康状态和/或链路质量发生变化包括:由拓扑感知模块获取当前拓扑信息,并判断当前拓扑信息与上次获取的拓扑信息是否相同;若是当前拓扑信息与上次获取的拓扑信息不同,确认拓扑信息发生变化,并将当前拓扑信息上传到控制模块;由健康监测模块获取当前健康状态和当前链路信息,并将当前健康状态和当前链路信息上传到控制模块,并由控制模块基于当前健康状态和当前链路信息与上次获取的健康状态和链路信息判断健康状态和链路质量是否发生变化。

在本实施例中,拓扑感知模块根据收到负载均衡后端服务端点信息感知节点上的后端服务端点拓扑信息,并将感知到的拓扑信息通过事件处理模块上送到控制模块,同时,若当前节点上的后端服务端点发生拓扑变化,拓扑感知事件将变化后的拓扑关系重新上报控制模块。

在本实施例中,健康检测模块负责检测负载均衡后端服务端点的健康状态,同时,健康检测模块也同时获取后端服务端点的网络链路状态信息,最终将检测信息通过事件处理模块发送到控制模块,由控制模块统一处理。

在本发明的一些实施例中,还包括:若是当前拓扑信息与上次获取的拓扑信息相同,确认拓扑信息未发生变化,则不会将当前拓扑信息上传到控制模块。

在本实施例中,拓扑感知模块根据收到负载均衡后端服务端点信息感知节点上的后端服务端点拓扑信息,若当前节点上的拓扑无变化时,拓扑感知模块进入静默模式,仅仅收集但不上报后端服务端点拓扑关系,以减小系统负载、节省网络带宽资源。

在本发明的一些实施例中,基于拓扑信息、健康状态和链路质量,计算得到若干后端服务端点的优先级包括:基于链路质量中的链路开销计算得到链路平均开销,并基于链路平均开销、拓扑权重、链路权重、链路开销权重、链路稳定性权重、延迟变更权重计算得到若干后端服务端点的负载均衡优先级。

在本发明的一些实施例中,基于链路平均开销、拓扑权重、链路权重、链路开销权重、链路稳定性权重、延迟变更权重计算得到若干后端服务端点的负载均衡优先级包括:通过如下公式计算若干后端服务端点的优先级:

其中,A

在本实施例中,链路平均开销M使用以下方式计算:

其中,x

在本实施例中,以三个节点为例,负载均衡优先级P的计算方式如下:

在本发明的一些实施例中,基于优先级设置均衡负载的服务响应端点包括:将若干后端服务端点的优先级按照从高到低排序,并将优先级最高的后端服务端点作为负载均衡的服务响应端点。

在本发明的一些实施例中,基于优先级调整服务响应端点包括:将若干后端服务端点重新计算得到的优先级按照从高到低排序,并将重新计算得到的优先级最高的后端服务端点作为负载均衡的服务响应端点。

需要特别指出的是,上述拓扑感知的负载均衡方法的各个实施例中的各个步骤均可以相互交叉、替换、增加、删减,因此,这些合理的排列组合变换之于拓扑感知的负载均衡方法也应当属于本发明的保护范围,并且不应将本发明的保护范围局限在实施例之上。

基于上述目的,本发明实施例的第二个方面,提出了一种拓扑感知的负载均衡装置。图2示出的是本发明提供的拓扑感知的负载均衡装置的实施例的示意图。如图2所示,本发明实施例包括如下模块:第一模块S11,配置用于获取用户下发的负载均衡配置信息,并基于配置信息判断负载均衡的若干后端服务端点是否位于不同节点;第二模块S12,配置用于若是负载均衡的若干后端服务端点位于不同节点,向不同节点定时下发对各自节点上若干后端服务端点轮询的命令,以获取不同节点的拓扑信息、若干后端服务端点的健康状态和链路质量;第三模块S13,配置用于基于拓扑信息、健康状态和链路质量,计算得到若干后端服务端点的优先级,并基于优先级设置均衡负载的服务响应端点;以及第四模块S14,配置用于响应于拓扑信息发生变化和/或健康状态和/或链路质量发生变化,重新计算若干后端服务端点的优先级,并基于优先级调整服务响应端点。

基于上述目的,本发明实施例的第三个方面,提出了一种计算机设备。图3示出的是本发明提供的计算机设备的实施例的示意图。如图3所示,本发明实施例包括如下装置:至少一个处理器S21;以及存储器S22,存储器S22存储有可在处理器上运行的计算机指令S23,指令由处理器执行时实现以上方法的步骤。

最后需要说明的是,本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关硬件来完成,拓扑感知的负载均衡方法的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,程序的存储介质可为磁碟、光盘、只读存储记忆体(ROM)或随机存储记忆体(RAM)等。上述计算机程序的实施例,可以达到与之对应的前述任意方法实施例相同或者相类似的效果。

此外,根据本发明实施例公开的方法还可以被实现为由处理器执行的计算机程序,该计算机程序可以存储在计算机可读存储介质中。在该计算机程序被处理器执行时,执行本发明实施例公开的方法中限定的上述功能。

此外,上述方法步骤以及系统单元也可以利用控制器以及用于存储使得控制器实现上述步骤或单元功能的计算机程序的计算机可读存储介质实现。

本领域技术人员还将明白的是,结合这里的公开所描述的各种示例性逻辑块、模块、电路和算法步骤可以被实现为电子硬件、计算机软件或两者的组合。为了清楚地说明硬件和软件的这种可互换性,已经就各种示意性组件、方块、模块、电路和步骤的功能对其进行了一般性的描述。这种功能是被实现为软件还是被实现为硬件取决于具体应用以及施加给整个系统的设计约束。本领域技术人员可以针对每种具体应用以各种方式来实现的功能,但是这种实现决定不应被解释为导致脱离本发明实施例公开的范围。

在一个或多个示例性设计中,功能可以在硬件、软件、固件或其任意组合中实现。如果在软件中实现,则可以将功能作为一个或多个指令或代码存储在计算机可读介质上或通过计算机可读介质来传送。计算机可读介质包括计算机存储介质和通信介质,该通信介质包括有助于将计算机程序从一个位置传送到另一个位置的任何介质。存储介质可以是能够被通用或专用计算机访问的任何可用介质。作为例子而非限制性的,该计算机可读介质可以包括RAM、ROM、EEPROM、CD-ROM或其它光盘存储设备、磁盘存储设备或其它磁性存储设备,或者是可以用于携带或存储形式为指令或数据结构的所需程序代码并且能够被通用或专用计算机或者通用或专用处理器访问的任何其它介质。此外,任何连接都可以适当地称为计算机可读介质。例如,如果使用同轴线缆、光纤线缆、双绞线、数字用户线路(DSL)或诸如红外线、无线电和微波的无线技术来从网站、服务器或其它远程源发送软件,则上述同轴线缆、光纤线缆、双绞线、DSL或诸如红外线、无线电和微波的无线技术均包括在介质的定义。如这里所使用的,磁盘和光盘包括压缩盘(CD)、激光盘、光盘、数字多功能盘(DVD)、软盘、蓝光盘,其中磁盘通常磁性地再现数据,而光盘利用激光光学地再现数据。上述内容的组合也应当包括在计算机可读介质的范围内。

以上是本发明公开的示例性实施例,但是应当注意,在不背离权利要求限定的本发明实施例公开的范围的前提下,可以进行多种改变和修改。根据这里描述的公开实施例的方法权利要求的功能、步骤和/或动作不需以任何特定顺序执行。此外,尽管本发明实施例公开的元素可以以个体形式描述或要求,但除非明确限制为单数,也可以理解为多个。

应当理解的是,在本文中使用的,除非上下文清楚地支持例外情况,单数形式“一个”旨在也包括复数形式。还应当理解的是,在本文中使用的“和/或”是指包括一个或者一个以上相关联地列出的项目的任意和所有可能组合。

上述本发明实施例公开实施例序号仅仅为了描述,不代表实施例的优劣。

本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。

所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本发明实施例公开的范围(包括权利要求)被限于这些例子;在本发明实施例的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,并存在如上的本发明实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。因此,凡在本发明实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本发明实施例的保护范围之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号