掌桥专利:专业的专利平台
掌桥专利
首页

技术领域

本申请涉及数据处理技术领域,尤其涉及一种负载均衡方法及装置。

背景技术

负载均衡技术建立在现有网络结构之上,提供了一种流量分配方式,可以有效利用各个服务器负载,实现业务在不同服务器上的自动分配。但是,目前的负载均衡方法与业务之间的结合仍然存在一些问题,主要体现在:

有限资源下的负载均衡方法智能化程度低;当服务器资源一定时,例如,当服务器数量和镜像数量为定值时,如果遇到高流量冲刷,现有的负载均衡方法难以在实现集群高可用的基础上,为重点业务预留出对应的资源而避免被非重点业务抢占资源,进而保证重点业务的可用性,此时,可能存在无法为重点业务提供服务的情况。

发明内容

针对现有技术中的至少一个问题,本申请提出了一种负载均衡方法及装置,能够在保证服务器集群高可用的同时,提高重点业务的可用性。

为了解决上述技术问题,本申请提供以下技术方案:

第一方面,本申请提供一种负载均衡方法,包括:

获取批量历史业务请求,并确定其各自的业务类型对应的重要度权重值;

基于批量历史业务请求及其各自的业务类型对应的重要度权重值,构建负载均衡策略优化的双层规划模型,所述双层规划模型的上层规划模型以目标服务器集群的集群负载量化费用和批量历史业务请求的综合业务保障率量化费用两者的加权求和结果作为目标函数值;下层规划模型为基于随机效用原理的流量分配模型,用于实现批量历史业务请求的流量分配,并将分配结果作为上层规划模型的输入;

求解所述双层规划模型,得到最优负载均衡策略。

进一步地,所述获取批量历史业务请求,并确定其各自的业务类型对应的重要度权重值,包括:

获取批量历史业务请求及其各自对应的历史指标向量;

根据预设的基于数学规划的聚类模型和所述历史指标向量,得到多组历史业务请求,并确定各个业务类型各自对应的重要度权重值;同一组历史业务请求的业务类型对应的重要度权重值相同。

进一步地,所述求解所述双层规划模型,得到最优负载均衡策略,包括:

对遗传算法进行参数初始化,得到初始种群,将其作为目标种群,执行策略优化步骤,策略优化步骤包括:根据所述目标种群,得到所述上层规划模型的目标函数值;

应用遗传算法,得到新的种群,将其作为目标种群再次执行所述策略优化步骤,直至策略优化步骤的执行次数大于迭代次数阈值;

根据目标函数值最低对应的种群,得到所述最优负载均衡策略。

进一步地,所述的负载均衡方法,还包括:

接收批量目标业务请求;

应用所述最优负载均衡策略,确定目标服务器集群中,每个目标业务请求各自对应的最优服务节点及目标业务请求的执行顺序;

根据所述目标业务请求的执行顺序,将每个目标业务请求发送至其对应的最优服务节点,以完成批量目标业务请求的负载均衡。

第二方面,本申请提供一种负载均衡装置,包括:

第一获取模块,用于获取批量历史业务请求,并确定其各自的业务类型对应的重要度权重值;

构建模块,用于基于批量历史业务请求及其各自的业务类型对应的重要度权重值,构建负载均衡策略优化的双层规划模型,所述双层规划模型的上层规划模型以目标服务器集群的集群负载量化费用和批量历史业务请求的综合业务保障率量化费用两者的加权求和结果作为目标函数值;下层规划模型为基于随机效用原理的流量分配模型,用于实现批量历史业务请求的流量分配,并将分配结果作为上层规划模型的输入;

求解模块,用于求解所述双层规划模型,得到最优负载均衡策略。

进一步地,所述第一获取模块包括:

获取单元,用于获取批量历史业务请求及其各自对应的历史指标向量;

分类单元,用于根据预设的基于数学规划的聚类模型和所述历史指标向量,得到多组历史业务请求,并确定各个业务类型各自对应的重要度权重值;同一组历史业务请求的业务类型对应的重要度权重值相同。

进一步地,所述求解模块,包括:

创建单元,用于对遗传算法进行参数初始化,得到初始种群,将其作为目标种群,执行策略优化步骤,策略优化步骤包括:根据所述目标种群,得到所述上层规划模型的目标函数值;

应用单元,用于应用遗传算法,得到新的种群,将其作为目标种群再次执行所述策略优化步骤,直至策略优化步骤的执行次数大于迭代次数阈值;

选取单元,用于根据目标函数值最低对应的种群,得到所述最优负载均衡策略。

进一步地,所述的负载均衡装置,还包括:

接收模块,用于接收批量目标业务请求;

应用模块,用于应用所述最优负载均衡策略,确定目标服务器集群中,每个目标业务请求各自对应的最优服务节点及目标业务请求的执行顺序;

发送模块,用于根据所述目标业务请求的执行顺序,将每个目标业务请求发送至其对应的最优服务节点,以完成批量目标业务请求的负载均衡。

第三方面,本申请提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现所述的负载均衡方法。

第四方面,本申请提供一种计算机可读存储介质,其上存储有计算机指令,所述指令被执行时实现所述的负载均衡方法。

由上述技术方案可知,本申请提供一种负载均衡方法及装置。其中,该方法包括:获取批量历史业务请求,并确定其各自的业务类型对应的重要度权重值;基于批量历史业务请求及其各自的业务类型对应的重要度权重值,构建负载均衡策略优化的双层规划模型,所述双层规划模型的上层规划模型以目标服务器集群的集群负载量化费用和批量历史业务请求的综合业务保障率量化费用两者的加权求和结果作为目标函数值;下层规划模型为基于随机效用原理的流量分配模型,用于实现批量历史业务请求的流量分配,并将分配结果作为上层规划模型的输入;求解所述双层规划模型,得到最优负载均衡策略,能够在保证服务器集群高可用的同时,提高重点业务的可用性,保障重点业务的顺利进行;还能够提高重点业务识别的智能化程度,提高重点业务识别的效率和准确性,同时,能够提高迭代周期内重点业务识别的自适应调节能力。具体具有以下有益效果:

(1)基于数学规划模型+无监督聚类的“有监督”聚类模型,可以实现聚类模型的自学习,可以避免人为判断热点业务而导致的不准确情况发生,可以根据历史数据集动态推演热点业务情况,有效提升相关决策的精度。

(2)以量化评估集群负载情况和服务综合保障率两者的加权作为目标函数值,实现对两者的控制。由于两者存在一定的对立,可以通过该目标函数实现对二者的博弈;建立双层规划模型,一方面,可以对总体目标函数值最优化分析,另一方面,基于随机效用原理的流量分配模型,可以实现对新进业务请求的动态分配,可以量化反馈到上层目标函数,实现流量分配对总体目标的反馈;可以使得服务器集群在负载平衡与保障重点业务之间找到最优点。另外,由于重点业务的重要度权重高,因此,在高并发下可以基于双层规划模型实现对其他非重点业务的自动限流,进而保证重点业务的服务能力。

附图说明

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

图1是本申请实施例中的负载均衡方法的流程示意图;

图2是本申请实施例中的负载均衡方法的步骤101和步骤102的流程示意图;

图3是本申请实施例中的负载均衡方法的步骤301至步骤303的流程示意图;

图4是本申请应用实例中的负载均衡方法的流程示意图;

图5是本申请应用实例中的负载均衡方法的步骤21至步骤23的流程示意图;

图6是本申请应用实例中的负载均衡方法的步骤31至步骤33的流程示意图;

图7是本申请实施例中的负载均衡装置的结构示意图;

图8是本申请实施例中的第一获取模块的结构示意图;

图9为本申请实施例的电子设备的系统构成示意框图。

具体实施方式

为了使本技术领域的人员更好地理解本说明书中的技术方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

在现有技术中,还存在以下问题:

重点业务识别的智能化程度低;重点业务是人为指定的,导致一些潜在的重点业务难以在第一时间得到发掘,进而导致在迭代周期内难以自适应调整,进而影响到业务执行。

为了解决上述现有技术中存在的问题,考虑到在资源有限(即可提供服务的服务器或服务能力在为定值)的情况下,如何排布业务请求转发的先后顺序是实现负载均衡以及满足重点业务的可用性的前提条件。在高并发情况下,可能存在访问延迟、丢包等问题的发生。因此,在集群高并发情况下自动实现重点业务保障的同时,需要限制非重点业务的流量分配,同时让集群负载仍能够均衡匹配。但是,负载均衡与重点业务保障之间存在一定的矛盾:从负载均衡层面看,目标是实现服务器集群的负载能在一个统一的水平,即对负载均衡来说平均分配请求的业务才是其重点,不考虑请求的重要性;对于重点业务保障来说,其不关心是由哪台服务器完成请求,只关心请求是否能完成。基于此,本申请提供一种负载均衡方法及装置,能够在有限资源且并发较高的情况下,实现负载均衡与重点业务保障,1)首先收集应用访问日志,得到访问路径和请求链路深度等信息。鉴于无监督学习耗时长,需要手动调参的问题,提出基于数学规划的聚类模型,通过设立聚类目标函数,并以聚类模型中的可调参数作为变量,以聚类效果反馈聚类目标函数,通过智能算法实现可调参数的最优调整,实现最佳聚类效果;2)生成最优负载均衡策略,该策略总体目标是集群负载最优并且综合服务保障率达到最优。该策略是一个双层规划模型,上层以集群负载最优以及综合服务保障率的量化值作为衡量标准;下层以负载均衡流量分配为目标,下层的分配结果会直接影响上层规划模型的目标函数值。在求解方面,提出基于智能+仿真的求解算法。通过该策略,可以在有限资源及高并发的情况下,实现负载均衡和服务保障之间的动态调整。

为了便于对本方案的理解,下面对与本方案相关的技术内容进行说明。

集群最优策略:为注重负载均衡轻视重点业务保障的负载均衡策略。

效能最优策略:为注重重点业务保障的负载均衡策略。

费用:在应用实际对外服务过程中,实际上是希望集群负载侧的负载状况与整体的综合业务保障率达到一个总体最优的情况,为此付出的代价称之为“费用”。

平衡点:为服务器集群为了实现费用最小而在集群负载最优和综合重点业务保障率最优间寻求的一点,平衡点影响集群负载侧的负载状况与整体的综合业务保障率两者是否能达到全局最优或是局部最优,可以在最小费用的情况下尽可能实现两者局部最优或全局最优,总费用以符号Z表示,平衡点系数以符号α表示。

为了在保证服务器集群高可用的同时,提高重点业务的可用性,本申请实施例提供一种负载均衡装置,该装置可以是一服务器或客户端设备,所述客户端设备可以包括智能手机、平板电子设备、网络机顶盒、便携式计算机、台式电脑、个人数字助理(PDA)、车载设备和智能穿戴设备等。其中,所述智能穿戴设备可以包括智能眼镜、智能手表和智能手环等。

在实际应用中,进行负载均衡的部分可以在如上述内容所述的服务器侧执行,也可以所有的操作都在所述客户端设备中完成。具体可以根据所述客户端设备的处理能力,以及用户使用场景的限制等进行选择。本申请对此不作限定。若所有的操作都在所述客户端设备中完成,所述客户端设备还可以包括处理器。

上述的客户端设备可以具有通信模块(即通信单元),可以与远程的服务器进行通信连接,实现与所述服务器的数据传输。所述服务器可以包括任务调度中心一侧的服务器,其他的实施场景中也可以包括中间平台的服务器,例如与任务调度中心服务器有通信链接的第三方服务器平台的服务器。所述的服务器可以包括单台计算机设备,也可以包括多个服务器组成的服务器集群,或者分布式装置的服务器结构。

所述服务器与所述客户端设备之间可以使用任何合适的网络协议进行通信,包括在本申请提交日尚未开发出的网络协议。所述网络协议例如可以包括TCP/IP协议、UDP/IP协议、HTTP协议、HTTPS协议等。当然,所述网络协议例如还可以包括在上述协议之上使用的RPC协议(Remote Procedure Call Protocol,远程过程调用协议)、REST协议(Representational State Transfer,表述性状态转移协议)等。

需要说明的是,本申请公开的负载均衡方法及装置可用于金融技术领域,也可用于除金融技术领域之外的任意领域,本申请公开的负载均衡方法及装置的应用领域不做限定。

具体通过下述各个实施例进行说明。

为了在保证服务器集群高可用的同时,提高重点业务的可用性,本实施例提供一种执行主体是负载均衡装置的负载均衡方法,该负载均衡装置包括但不限于服务器,如图1所示,该方法具体包含有如下内容:

步骤100:获取批量历史业务请求,并确定其各自的业务类型对应的重要度权重值。

步骤200:基于批量历史业务请求及其各自的业务类型对应的重要度权重值,构建负载均衡策略优化的双层规划模型,所述双层规划模型的上层规划模型以目标服务器集群的集群负载量化费用和批量历史业务请求的综合业务保障率量化费用两者的加权求和结果作为目标函数值;下层规划模型为基于随机效用原理的流量分配模型,用于实现批量历史业务请求的流量分配,并将分配结果作为上层规划模型的输入。

具体地,实现批量历史业务请求的流量分配可以表示确定每个历史业务请求各自对应的服务节点,服务节点用于接收业务请求;所述分配结果可以包含有:历史业务请求的完成情况和每个服务节点的实时已提供服务能力;服务节点可以相当于镜像。

步骤300:求解所述双层规划模型,得到最优负载均衡策略。

具体地,最优负载均衡策略可以相当于求解后的双层规划模型。

为了进一步提高确定历史业务请求的重要度权重值的效率,参见图2,在本申请一个实施例中,步骤100包括:

步骤101:获取批量历史业务请求及其各自对应的历史指标向量。

具体地,历史指标向量和历史业务请求之间一一对应,每组历史指标向量可以是根据其唯一对应的历史业务请求的业务日志得到的;每条业务日志可以包含有唯一对应的历史业务请求的时间戳、执行耗费时间、日志级别、访问路径(全类名或文件路径)、日志正文和访问链路等;可以根据时间戳和访问路径,确定每秒查询次数QPS;可以根据访问链路确定请求链路深度,可以根据访问路径确定功能模块和具体功能;对于任一组历史指标向量

步骤102:根据预设的基于数学规划的聚类模型和所述历史指标向量,得到多组历史业务请求,并确定各个业务类型各自对应的重要度权重值;同一组历史业务请求的业务类型对应的重要度权重值相同。

具体地,所述预设的基于数学规划的聚类模型为预先训练得到的基于谱聚类算法的机器学习模型;所述预设的基于数学规划的聚类模型包括:高斯核函数和分隔簇数目;可以应用模拟退火算法优化所述高斯核函数和分隔簇数目。

可以根据各组历史业务请求对应的指标数据,确定各组历史业务请求之间的优先度顺序;可以设定一历史业务请求组的优先度越高,该组的重要度权重值越大,每组历史业务请求的重要度权重的具体数值可以结合其优先度高低,根据实际需要进行设置,一组历史业务请求的重要度权重值可以表示该组中的多个历史业务请求各自的业务类型的重要度权重值,业务请求中可以包含有业务类型。

为了进一步提高最优负载均衡策略的准确性,参见图3,在本申请一个实施例中,步骤300包括:

步骤301:对遗传算法进行参数初始化,得到初始种群,将其作为目标种群,执行策略优化步骤,策略优化步骤包括:根据所述目标种群,得到所述上层规划模型的目标函数值。

步骤302:应用遗传算法,得到新的种群,将其作为目标种群再次执行所述策略优化步骤,直至策略优化步骤的执行次数大于迭代次数阈值。

可以理解的是,若应用遗传算法,得到新的种群时,策略优化步骤当前的执行次数已大于迭代次数阈值,则不再执行策略优化步骤。

步骤303:根据目标函数值最低对应的种群,得到所述最优负载均衡策略。

为了提高应用负载均衡策略的可靠性,进而在保证服务器集群高可用的同时,提高重点业务的可用性,在本申请一个实施例中,所述的负载均衡方法,还包括:

步骤010:接收批量目标业务请求。

步骤020:应用所述最优负载均衡策略,确定目标服务器集群中,每个目标业务请求各自对应的最优服务节点及目标业务请求的执行顺序。

步骤030:根据所述目标业务请求的执行顺序,将每个目标业务请求发送至其对应的最优服务节点,以完成批量目标业务请求的负载均衡

可以理解的是,相较于将目标业务请求发送至其他服务器,通过将每个目标业务请求发送至其对应的最优服务节点,可以使得所述预设的双层规划模型的上层规划模型的目标函数值最低。

为了进一步说明本方案,参见图4,本申请提供一种负载均衡方法的应用实例,具体描述如下:

步骤10:获取批量历史业务请求对应的日志记录;对日志记录进行处理,得到指标数据集,该指标数据集包括:每个历史业务请求各自对应的QPS、执行耗费时间、访问链路深度、功能模块和具体功能这五类指标数据,为后续重点业务识别提供数据基础。具体实施步骤如下:

1)一般来说,主要有两类数据源:(1)中间件生成的log文件,比如IBM was服务器运行应用时生成的message.log,或者国产东方通tongweb运行应用时生成的server.log,用户可以在管理控制台或配置文件中设置其日志格式以方便后续分析;(2)应用日志,一般的B/S应用或C/S应用都会引入日志框架,对业务的运行过程进行记录,一般来说常用的主要日志框架有log4j、log4j2、slf4j以及logback等。应用可在对应的配置文件中指定生成不同的日志文件及不同的日志格式以方便分析。

2)数据源抓取;从时间维度上说,如果是工作型应用可以抓取工作时段日志即可,如果是娱乐、消费类型应用就需要抓取全时段信息。另外,日志一般包含有以下几类信息:时间戳、执行耗费时间、日志级别、访问路径(全类名或文件路径)、日志正文和访问链路等。其中,时间戳是后续用于计算QPS(每秒查询率)的重要依据;访问路径一般对应模块与具体的功能;执行耗费时间是用来判断业务重要性的辅助手段;访问链路是评估请求深度的量度,以上四类信息是进行重点业务分析的重要因素。

QPS:QPS指的是每秒查询次数,其是与访问路径对应的,即本应用实例计算的是每秒请求指定模块下指定功能多少次。基于时间戳和访问路径信息计算即可。

执行耗费时间:通常单位为毫秒。

请求链路深度:单个请求的链路长度,可以根据单个请求在后台触发的功能情况判断。

功能模块:业务功能大类,比如事前申请、购物车模块。

具体功能:业务功能小类,比如,事前申请-发起申请、购物车模块-删除单条购物车记录。

以上五类指标均可从日志中直接或者间接获取,可以为后续重点业务识别与分类奠定基础。

步骤20:提出基于数据规划+无监督聚类的“有监督”聚类算法,即通过数据规划对无监督模型算法实施调优,实现聚类算法的自学习;基于所述“有监督”聚类算法、以及每个历史业务请求各自对应的功能模块和具体功能,识别出重点业务,为后续实现重点业务负载均衡提供保障。

具体地,通过对聚类算法加以数学模型和智能算法求解,以驱动聚类算法朝最优方向靠拢,实现监督学习的效果。参见图5,具体实施步骤如下。

步骤21:基于指标数据集,抽象映射向量。

对于QPS,定义指标v

对于请求链路深度,定义指标v

对于运行时间,定义为v

对于模块,根据数据集,估算有多少模块,设定为v

对于模块下具体功能,根据历史信息,推算即可,设定为

对于某一功能模块m,有

步骤22:构建基于谱聚类的智能聚类模型。

基于步骤21所述变量定义,提出一种基于多路谱聚类的重点业务划分模型;从技术层面看:该模型通过引入数学规划模型来监督聚类算法,可以对实现聚类算法的监督。从应用层面看,通过应用智能聚类方法,可以有效提升重点业务识别的粒度。这里的粒度一方面是指识别的维度到了模块下的具体功能,另一方面,从时间维度讲可以根据用户设置的数据维度来进一步细化,实现重点业务的实时分类,实时调整。以下是具体的建模过程。

首先,在数据选用上,应用步骤21中的指标向量

对于图G,定义其加权邻接矩阵A

其中,w、v表示索引。进一步地,定义度矩阵D

其余的元素均为0。此时,L

谱聚类(spectral clustering)的目标是将图切割为k个子图,且保证连接子图的区间权重和最小,子图内的权重和较大。

假设将图切割为两个子图,对于子图Ι和

则该路径集合权重为W

基于谱聚类的常用参数项集合划分目标函数如下所示:

在此,为了提高执行效率,基于多路规范割集准则构建识别模型,该识别模型如下:

基于该模型,本步骤要达到的目标是:将由V条指标向量成的图划分成κ个子图,且划分后的子图内,各个指标向量之间相似度达到最高,子图之间的指标向量相似度达到最低。而这个过程需要由智能算法驱动进行,以下介绍求解过程。

步骤23:基于模拟退火算法的模型求解。

在模型建立后,存在两个待优化参数,一个是高斯核函数σ,另一个是分隔簇数目κ,为确定最优取值,提出基于模拟退火的优化算法来优化两个参数取值。

因此,约束条件s.t为:

其中,n为迭代次数、Te为温度阈值、η为温度衰减率。

在此给出模型的具体求解过程:

Step1:初始化σ以及κ,计算A

Step2:标准化拉普拉斯矩阵

Step3:将Ψ中所有行向量转换为单位向量,得到矩阵X;

Step4:对矩阵每一行使用k均值算法,得到k个簇;

Step5:当矩阵X的第e行属于类别f时,将数据点x

Step6:计算目标函数值F,随机σ以及κ,重复Step1-Step5,得到新函数值F';

Step7:计算增量ΔF,并选择是否接收新解;

Step8:若达到迭代次数,转Step9,否则转Step6;

Step9:是否满足终止条件,如满足,转Step10,否则降温转Step6;

Step10:输出最优解。

通过求解,可以获取到最佳的重点业务分类,其可以用于后续负载均衡与限流中进行权衡,对于重点业务,其具备更高的权重,需要优先保障;对于非重点业务,其权重较低,可以进入队列等待重点业务完成,再进行负载。具体分类说明与策略实施见步骤30。

进一步地,可以通过智能分类算法,获得业务的具体分类情况,以下举例进行说明,实际情况的分类结果以实际为准。

情况1:低耗时、浅链路、高QPS模块功能。对于单位时间查询数高但运行耗时低、链路浅的业务功能,属于重点保护业务。首先,高QPS表明其访问频度高。另一方面,低耗时也表明其需要挤占线程时间不多,可以优先安排负载。另外,访问链路浅也表明其涉及到的资源访问量较小,对集群压力也较小。

情况2:高耗时、浅链路、高QPS模块功能。对于单位时间查询数高且运行耗时长,但链路浅的业务,也属于重点保护业务,但保护级别较情况1低,这是由于运行其会占用一定时间的线程。

情况3:低耗时、深链路、高QPS模块功能。对于QPS较高,深链路、但耗时低的业务,要在情况1、2之后优先安排。

...

情况n:高耗时、深链路、低QPS模块功能。优先度最低。

由此可以看出,对于划分来说。最重要的是QPS的数值。在此基础上,业务访问是否耗时是次要指标,最后,访问链路是最后的评估指标。可以根据各个分类的优先度,确定各类业务的重要度权重值。

以上仅为举例说明,在实际应用中,划分的簇维度要大于高、中、低这类表述。

步骤30:基于重点业务识别结果,建立有限资源下负载均衡与流量控制策略的双层规划模型,模型上层以集群负载量化费用和综合业务保障率量化费用的组合作为目标函数,下层规划模型建立基于随机效用原理的流量分配模型,通过遗传算法实现调优,实现总体效用的最优化。参见图6,具体实现步骤如下:

步骤31:构建双层规划模型的下层规划模型。该模型上层规划模型,以集群负载量化费用以及综合业务保障率的组合作为全局费用;下层规划模型为基于随机效用理论的流量分配模型,该模型通过综合考虑请求的相关属性和服务器的实际情况对流量进行分配。其中,下层规划模型的分配结果会作为上层规划模型的输入,以此实现上下层规划模型的联动。

首先要定义全局负载均衡和服务保障的度量,这是用于量化费用的关键一步,也是将决策变量与上层规划模型结合的手段。

1)对于集群负载的度量

假定有服务器C台,其中,每台服务器中的可运行镜像为U个,每台服务器中的可运行镜像集表示为{I

定义集群负载熵χ

2)对于服务保障的度量

一方面,需要考虑业务完成情况;另一方面,也要考虑实施该策略所损耗的时间。因此,服务保障的度量由两部分组成。

定义时间段T

对于一组请求来说,其业务完成情况成本费用为Z

其中,ω

假设有N

其中,(Z

对于全局来说,总的费用模型为:

Z=αχ

代入上式,有:

其中:α表示平衡点系数,β

对应约束为:

0≤α≤1

0≤μ

以上,定义了双层模型中的上层规划模型,其也是最终体现策略效果的量度,以下,将基于随机效用理论建立流量分配模型,实现上下层规划模型联动。

步骤32:构建基于随机效用理论的流量分配模型。

在上一节定义了上层规划模型后,本节介绍基于随机效用原理的流量分配模型,该流量分配模型可以是逻辑回归Logit模型。

在影响流量分配的众多因素中,本应用实例使用QPS、执行耗费时间、请求链路深度以及负载集群的实际情况共同计算单个请求在进行分配时的广义费用。每类业务请求的级别分数和权重参数按照各自独立的维度去设计。

(1)单位时间查询数目

假定对于一请求来说,QPS指标的级别分数为Y

F

(2)请求耗时

假定对于一请求来说,执行耗费时间指标的级别分数为Y

F

(3)请求链路深度

假定对于一请求来说,请求链路深度指标的级别分数为Y

F

(4)服务器状态

一般来说,服务器负载程度越高,应将请求接入相对负载较低的服务器或镜像,因此以集群既有负载的倒数作为指标,得到:

F

其中,η

综合以上情况,可以得出广义费用F:

F=F

具体地,离散选择模型,是以经济学理论中消费者的“效用”最大化为基本假设的理论。应用离散选择模型,一般要遵从两个基本假设:

(1)请求作为服务的基本单位,负载均衡策略会从若干个服务节点中选择最合适的节点分配该请求,对于任何一个节点,针对这个情况都有固定的效用,该效用与这个请求相匹配,比如广义费用F。

(2)根据效用最大化理论,选取效用最大的一个服务节点,其中,一个服务节点可以相当于一个镜像,一个服务器中可以包含有多个服务节点;假设有a、b两个服务节点,当且仅当节点a的效用大于节点b的效用时,会选择节点a作为分配结果。

通常,效用由两部分组成,一部分是固定效用,只要确定请求信息和服务器信息,固定效用在瞬时不发生变化。但由于实际运行环境存在扰动,因此使用随机效用表示扰动关系。一般假设两部分存在线性关系,有如下所示:

其中,

根据效用最大化原理,业务请求r被分配到节点a的概率可以表示为:

由于请求总会被分配到集群中,因此:

其中,

根据随机项服从的分布不同,可以推导出不同的离散选择模型。假定随机项复核同一参数的耿贝尔Gumbel分布,可以推导出多项式Logit模型,即:

通过以上模型,可以实现流量的自动分配。同时,通过流量分配结果,可以影响到上层规划模型的结果,实现上下模型的联动,以下给出模型求解过程。

步骤33:基于遗传算法求解模型。

具体地,遗传算法的作为模型求解的一环,其本身属于模型。通过遗传算法确定请求是否走负载均衡策略;若是,则优先分配,否则延迟分配;可以基于遗传算法与仿真的求解策略,对步骤31和步骤32提出的双层规划模型进行求解。其中,决策变量为一组请求R是否通过负载均衡策略进行分配,若是则为1,否则为0,定义变量Ψ

(1)交叉过程

假设每次迭代的交叉概率为p

(2)变异过程

假定每个染色体在每一代都有p

(3)选择过程

选择过程是为了让好的个体能够遗传,在此采用常规轮盘对赌法,其个体适应度即为目标函数,假定某个个体的适应度为Z(Ψ),总适应度为Z

至此给出整个求解步骤:

Step1:初始化相关参数,基于随机数任意生成请求策略集合,即种群。

Step2:对于需要分配的请求,使用流量分配模型去分配流量,对于不使用策略的随机分配即可。

Step3:基于数据结果计算个体和群体的适应度。

Step4:对种群内个体实施变异、交叉和选择操作,生成新的种群合集。

Step5:对迭代次数进行判断,若超过则转Step6,否则转Step2。

Step6:输出最优策略。

通过以上步骤,用户可以在自定义平衡点系数α的情况下可以在全局负载均衡与综合服务保障率之间寻求最优。

通过该方法的实施,可以有效实现流量的负载均衡分配。同时,在并发压力大的情况下,策略会优先保障重点业务先行,对于未被分配的非重点业务或次重点业务,会将其重新排入队列处理,实现限流的功能。

从软件层面来说,为了在保证服务器集群高可用的同时,提高重点业务的可用性,本申请提供一种用于实现所述负载均衡方法中全部或部分内容的负载均衡装置的实施例,参见图7,所述负载均衡装置具体包含有如下内容:

第一获取模块01,用于获取批量历史业务请求,并确定其各自的业务类型对应的重要度权重值。

构建模块02,用于基于批量历史业务请求及其各自的业务类型对应的重要度权重值,构建负载均衡策略优化的双层规划模型,所述双层规划模型的上层规划模型以目标服务器集群的集群负载量化费用和批量历史业务请求的综合业务保障率量化费用两者的加权求和结果作为目标函数值;下层规划模型为基于随机效用原理的流量分配模型,用于实现批量历史业务请求的流量分配,并将分配结果作为上层规划模型的输入。

求解模块03,用于求解所述双层规划模型,得到最优负载均衡策略。

参见图8,在本申请一个实施例中,所述第一获取模块01,包括:

获取单元011,用于获取批量历史业务请求及其各自对应的历史指标向量.

分类单元012,用于根据预设的基于数学规划的聚类模型和所述历史指标向量,得到多组历史业务请求,并确定各个业务类型各自对应的重要度权重值;同一组历史业务请求的业务类型对应的重要度权重值相同。

在本申请一个实施例中,所述求解模块,包括:

创建单元,用于对遗传算法进行参数初始化,得到初始种群,将其作为目标种群,执行策略优化步骤,策略优化步骤包括:根据所述目标种群,得到所述上层规划模型的目标函数值。

应用单元,用于应用遗传算法,得到新的种群,将其作为目标种群再次执行所述策略优化步骤,直至策略优化步骤的执行次数大于迭代次数阈值。

选取单元,用于根据目标函数值最低对应的种群,得到所述最优负载均衡策略。

在本申请一个实施例中,所述的负载均衡装置,还包括:

接收模块,用于接收批量目标业务请求。

应用模块,用于应用所述最优负载均衡策略,确定目标服务器集群中,每个目标业务请求各自对应的最优服务节点及目标业务请求的执行顺序。

发送模块,用于根据所述目标业务请求的执行顺序,将每个目标业务请求发送至其对应的最优服务节点,以完成批量目标业务请求的负载均衡。

本说明书提供的负载均衡装置的实施例具体可以用于执行上述负载均衡方法的实施例的处理流程,其功能在此不再赘述,可以参照上述负载均衡方法实施例的详细描述。

由上述描述可知,本申请提供的负载均衡方法及装置,能够有效提升重点业务识别能力,在有限资源下同时最大程度保证负载均衡与重点业务保障能力。

从硬件层面来说,为了在保证服务器集群高可用的同时,提高重点业务的可用性,本申请提供一种用于实现所述负载均衡方法中的全部或部分内容的电子设备的实施例所述电子设备具体包含有如下内容:

处理器(processor)、存储器(memory)、通信接口(Communications Interface)和总线;其中,所述处理器、存储器、通信接口通过所述总线完成相互间的通信;所述通信接口用于实现所述负载均衡装置以及用户终端等相关设备之间的信息传输;该电子设备可以是台式计算机、平板电脑及移动终端等,本实施例不限于此。在本实施例中,该电子设备可以参照实施例用于实现所述负载均衡方法的实施例及用于实现所述负载均衡装置的实施例进行实施,其内容被合并于此,重复之处不再赘述。

图9为本申请实施例的电子设备9600的系统构成的示意框图。如图9所示,该电子设备9600可以包括中央处理器9100和存储器9140;存储器9140耦合到中央处理器9100。值得注意的是,该图9是示例性的;还可以使用其他类型的结构,来补充或代替该结构,以实现电信功能或其他功能。

在本申请一个或多个实施例中,负载均衡功能可以被集成到中央处理器9100中。其中,中央处理器9100可以被配置为进行如下控制:

步骤100:获取批量历史业务请求,并确定其各自的业务类型对应的重要度权重值。

步骤200:基于批量历史业务请求及其各自的业务类型对应的重要度权重值,构建负载均衡策略优化的双层规划模型,所述双层规划模型的上层规划模型以集群负载量化费用和综合业务保障率量化费用的加权求和结果作为目标函数值,下层规划模型为基于随机效用原理的流量分配模型。

步骤300:求解所述双层规划模型,得到最优负载均衡策略。

从上述描述可知,本申请的实施例提供的电子设备,能够为了在保证服务器集群高可用的同时,提高重点业务的可用性。

在另一个实施方式中,负载均衡装置可以与中央处理器9100分开配置,例如可以将负载均衡装置配置为与中央处理器9100连接的芯片,通过中央处理器的控制来实现负载均衡功能。

如图9所示,该电子设备9600还可以包括:通信模块9110、输入单元9120、音频处理器9130、显示器9160、电源9170。值得注意的是,电子设备9600也并不是必须要包括图9中所示的所有部件;此外,电子设备9600还可以包括图9中没有示出的部件,可以参考现有技术。

如图9所示,中央处理器9100有时也称为控制器或操作控件,可以包括微处理器或其他处理器装置和/或逻辑装置,该中央处理器9100接收输入并控制电子设备9600的各个部件的操作。

其中,存储器9140,例如可以是缓存器、闪存、硬驱、可移动介质、易失性存储器、非易失性存储器或其它合适装置中的一种或更多种。可储存上述与失败有关的信息,此外还可存储执行有关信息的程序。并且中央处理器9100可执行该存储器9140存储的该程序,以实现信息存储或处理等。

输入单元9120向中央处理器9100提供输入。该输入单元9120例如为按键或触摸输入装置。电源9170用于向电子设备9600提供电力。显示器9160用于进行图像和文字等显示对象的显示。该显示器例如可为LCD显示器,但并不限于此。

该存储器9140可以是固态存储器,例如,只读存储器(ROM)、随机存取存储器(RAM)、SIM卡等。还可以是这样的存储器,其即使在断电时也保存信息,可被选择性地擦除且设有更多数据,该存储器的示例有时被称为EPROM等。存储器9140还可以是某种其它类型的装置。存储器9140包括缓冲存储器9141(有时被称为缓冲器)。存储器9140可以包括应用/功能存储部9142,该应用/功能存储部9142用于存储应用程序和功能程序或用于通过中央处理器9100执行电子设备9600的操作的流程。

存储器9140还可以包括数据存储部9143,该数据存储部9143用于存储数据,例如联系人、数字数据、图片、声音和/或任何其他由电子设备使用的数据。存储器9140的驱动程序存储部9144可以包括电子设备的用于通信功能和/或用于执行电子设备的其他功能(如消息传送应用、通讯录应用等)的各种驱动程序。

通信模块9110即为经由天线9111发送和接收信号的发送机/接收机9110。通信模块(发送机/接收机)9110耦合到中央处理器9100,以提供输入信号和接收输出信号,这可以和常规移动通信终端的情况相同。

基于不同的通信技术,在同一电子设备中,可以设置有多个通信模块9110,如蜂窝网络模块、蓝牙模块和/或无线局域网模块等。通信模块(发送机/接收机)9110还经由音频处理器9130耦合到扬声器9131和麦克风9132,以经由扬声器9131提供音频输出,并接收来自麦克风9132的音频输入,从而实现通常的电信功能。音频处理器9130可以包括任何合适的缓冲器、解码器、放大器等。另外,音频处理器9130还耦合到中央处理器9100,从而使得可以通过麦克风9132能够在本机上录音,且使得可以通过扬声器9131来播放本机上存储的声音。

上述描述可知,本申请的实施例提供的电子设备,能够为了在保证服务器集群高可用的同时,提高重点业务的可用性。

本申请的实施例还提供能够实现上述实施例中的负载均衡方法中全部步骤的一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述实施例中的负载均衡方法的全部步骤,例如,所述处理器执行所述计算机程序时实现下述步骤:

步骤100:获取批量历史业务请求,并确定其各自的业务类型对应的重要度权重值。

步骤200:基于批量历史业务请求及其各自的业务类型对应的重要度权重值,构建负载均衡策略优化的双层规划模型,所述双层规划模型的上层规划模型以集群负载量化费用和综合业务保障率量化费用的加权求和结果作为目标函数值,下层规划模型为基于随机效用原理的流量分配模型。

步骤300:求解所述双层规划模型,得到最优负载均衡策略。

从上述描述可知,本申请实施例提供的计算机可读存储介质,能够为了在保证服务器集群高可用的同时,提高重点业务的可用性。

本申请中上述方法的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。相关之处参见方法实施例的部分说明即可。

本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

本申请中应用了具体实施例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

相关技术
  • 一种负载均衡方法、负载均衡装置和负载均衡服务器
  • 一种负载均衡方法、负载均衡器及负载均衡系统
技术分类

06120113818682