一种负载均衡方法、装置、设备以及存储介质转让专利

申请号 : CN202211050379.8

文献号 : CN115134368B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 潘建东徐政钧刘逸雄谷航宇

申请人 : 中信建投证券股份有限公司

摘要 :

本发明实施例提供了一种负载均衡方法、装置、设备以及存储介质,涉及数据处理技术领域,具体方案为:响应于客户端发送的目标任务请求,获得响应目标任务请求所需资源的第一资源信息;根据各台服务器的当前负载的负载信息、处于连接状态的长连接中对应于图文类型的任务请求的第一连接的数量、对应于音视频类型的任务请求的第二连接的数量、空闲的第三连接的数量以及处于连接状态的长连接的平均创建耗时,获得各台服务器的可用资源的第二资源信息;根据第一资源信息和各第二资源信息,从各台服务器中分配目标服务器,以使得目标服务器与客户端针对目标任务请求建立长连接,并响应目标任务请求。应用本发明实施例提供的方案能够实现负载均衡。

权利要求 :

1.一种负载均衡方法,其特征在于,所述方法包括:

响应于客户端发送的目标任务请求,若所述目标任务请求对应的数据类型为图文类型,根据响应图文类型对应的任务请求所需资源的历史资源信息,获得响应所述目标任务请求所需资源的第一资源信息,若所述目标任务请求对应的数据类型为音视频类型,根据所述目标任务请求对应的数据特征,获得所述第一资源信息;

根据各台服务器的当前负载的负载信息、处于连接状态的长连接中对应于图文类型的任务请求的第一连接的数量、对应于音视频类型的任务请求的第二连接的数量、空闲的第三连接的数量以及处于连接状态的长连接的平均创建耗时,获得各台服务器的可用资源的第二资源信息;

根据所述第一资源信息和各第二资源信息,从各台服务器中分配用于响应所述目标任务请求、且使得服务器间资源占用差异最小的目标服务器,以使得所述目标服务器与所述客户端针对所述目标任务请求建立长连接,并基于所建立的长连接响应所述目标任务请求。

2.根据权利要求1所述的方法,其特征在于,所述根据各台服务器的当前负载的负载信息、处于连接状态的长连接中对应于图文类型的任务请求的第一连接的数量、对应于音视频类型的任务请求的第二连接的数量、空闲的第三连接的数量以及处于连接状态的长连接的平均创建耗时,获得各台服务器的可用资源的第二资源信息,包括:按照以下方式,获得各台服务器的可用资源的第二资源信息:

获得服务器的网络资源中当前被占用的带宽资源信息,并获得服务器的计算资源中当前被占用的计算资源信息;

获得服务器处于连接状态的长连接中对应于图文类型的任务请求的第一连接的数量、对应于音视频类型的任务请求的第二连接的数量、空闲的第三连接的数量以及处于连接状态的长连接的平均创建耗时;

根据所述带宽资源信息、第一连接的数量、第二连接的数量、第三连接的数量以及平均创建耗时,获得第一特征;

根据所述计算资源信息、第一连接的数量、第二连接的数量、第三连接的数量以及平均创建耗时,获得第二特征;

根据所述第一特征和所述第二特征,获得服务器的可用资源的第二资源信息。

3.根据权利要求2所述的方法,其特征在于,所述根据所述第一特征和所述第二特征,获得服务器的可用资源的第二资源信息,包括:将所述第一特征和所述第二特征输入预先训练的可用资源预测模型,得到所述可用资源预测模型输出的服务器的可用资源的第二资源信息;

其中,所述可用资源预测模型为:以第一样本特征和第二样本特征为输入,以样本数据中的可用资源的样本资源信息为监督信息,对预设的第一神经网络模型进行训练得到的用于预测服务器的可用资源的资源信息的模型;

所述样本数据为:按照预设周期对样本服务器进行数据采集得到的数据;所述第一样本特征为:根据所述样本数据中包括的样本带宽资源信息、第一样本连接的数量、第二样本连接的数量、第三样本连接的数量以及样本平均创建耗时获得的特征,所述第二样本特征为:根据样本计算资源信息、第一样本连接的数量、第二样本连接的数量、第三样本连接的数量以及样本平均创建耗时获得的特征。

4.根据权利要求1‑3中任一项所述的方法,其特征在于,所述根据响应图文类型对应的任务请求所需资源的历史资源信息,获得响应所述目标任务请求所需资源的第一资源信息,包括:获得各台服务器在预设的第一历史时长内响应图文类型对应的任务请求所需带宽资源的历史平均带宽资源信息;

获得各台服务器在所述第一历史时长内响应图文类型对应的任务请求所需计算资源的历史平均计算资源信息;

获得根据所述第一历史时长内响应图文类型对应的任务请求所需带宽资源的历史最大值和预设的第二历史时长内响应图文类型对应的任务请求所需带宽资源的平均值确定的第一浮动系数;

获得根据所述第一历史时长内响应图文类型对应的任务请求所需计算资源的历史最大值和所述第二历史时长内响应图文类型对应的任务请求所需计算资源的平均值确定的第二浮动系数;

根据所述历史平均带宽信息和所述第一浮动系数获得带宽资源预测值,并根据所述历史平均计算资源信息和所述第二浮动系数获得计算资源预测值,得到所述带宽资源预测值、计算资源预测值表示的响应所述目标任务请求所需资源的第一资源信息。

5.根据权利要求1‑3中任一项所述的方法,其特征在于,所述根据所述目标任务请求对应的数据特征,获得所述第一资源信息,包括:若所述目标任务请求对应的数据类型为音频子类型,获得根据音频的比特率、采样率以及音频道数确定的数据特征;

若所述目标任务请求对应的数据类型为视频子类型,获得根据视频中画面的分辨率、帧率、码率以及视频中声音的比特率、采样率、音频道数确定的数据特征;

根据所述数据特征,获得所述第一资源信息。

6.根据权利要求5所述的方法,其特征在于,所述根据所述数据特征,获得所述第一资源信息,包括:将所述数据特征输入预先训练的所需资源预测模型,获得所述所需资源预测模型输出的第一资源信息,其中,所述所需资源预测模型为:以样本数据特征为输入,以响应样本任务请求消耗资源的样本资源信息为监督信息,对预设的第二神经网络模型进行训练得到的、用于预测响应音视频类型所对应任务请求需要资源的资源信息的模型;

所述样本任务请求的数据类型为音视频类型;

在所述样本任务请求对应的数据类型为音频子类型的情况下,所述样本数据特征为:

根据音频的样本比特率、样本采样率以及样本音频道数获得的数据特征;在所述样本任务请求对应的数据类型为视频子类型的情况下,所述样本数据特征为:根据视频中画面的样本分辨率、样本帧率、样本码率以及视频中声音的样本比特率、样本采样率、样本音频道数获得的数据特征。

7.根据权利要求1‑3中任一项所述的方法,其特征在于,所述根据所述第一资源信息和各第二资源信息,从各台服务器中分配用于响应所述目标任务请求、且使得服务器间资源占用差异最小的目标服务器,包括:根据各服务器分别在预设的第三历史时长内响应任务请求的数据,确定各服务器响应任务请求的可靠程度;

根据所述第一资源信息、各第二资源信息和各服务器对应的可靠程度,从各台服务器中分配用于响应所述目标任务请求、且使得服务器间资源占用差异最小的目标服务器。

8.根据权利要求7所述的方法,其特征在于,所述根据所述第一资源信息、各第二资源信息和各服务器对应的可靠程度,从各台服务器中分配用于响应所述目标任务请求、且使得服务器间资源占用差异最小的目标服务器,包括:按照以下表达式从各台服务器中分配用于响应所述目标任务请求、且使得服务器间资源占用差异最小的目标服务器:其中,表示各服务器间资源占用差异最小情况下的差异系数; 表示标识为k的资源类型的比例系数,资源类型包括:计算资源和带宽资源; 表示标识为j的服务器分配到所述目标任务请求后在标识为k的资源类型下的资源占用率; 表示标识为 的服务器分配到所述目标任务请求后在标识为k的资源类型下的资源占用率; 为标识为k的资源类型下的所有服务器平均资源占用率;为标识为j的服务器响应任务请求的可靠程度;m为服务器总数;

在上述表达式中,存在下述约束条件:

其中, 为标识为j的服务器可使用资源所占该服务器总资源量的比例。

9.根据权利要求7所述的方法,其特征在于,所述根据各服务器分别在预设的第三历史时长内响应任务请求的数据,确定各服务器响应任务请求的可靠程度,包括:针对每一服务器,获得该服务器在预设的第三历史时长内响应任务请求的总数量、响应任务请求失败的失败数量、响应任务请求超时的超时数量、平均响应时长、服务器故障概率,根据所获得的数据,确定该服务器响应任务请求的可靠程度;

根据所获得可靠程度中的最大值以及最小值,对所获得的各个可靠程度进行归一化调整。

10.根据权利要求9所述的方法,其特征在于,所述针对每一服务器,获得该服务器在预设的第三历史时长内响应任务请求的总数量、响应任务请求失败的失败数量、响应任务请求超时的超时数量、平均响应时长、服务器故障概率,根据所获得的数据,确定该服务器响应任务请求的可靠程度,包括:按照以下表达式确定该服务器响应任务请求的可靠程度:

其中,Y表示该服务器响应任务请求的可靠程度; 表示该服务器在所述第三历史时长内响应任务请求的总数量; 表示该服务器在所述第三历史时长内的平均响应时长; 表示该服务器在所述第三历史时长内响应任务请求失败的失败数量; 表示该服务器在所述第三历史时长内响应任务请求超时的超时数量;f表示该服务器的故障概率。

11.一种负载均衡装置,其特征在于,所述装置包括:

第一信息获得模块,用于响应于客户端发送的目标任务请求,若所述目标任务请求对应的数据类型为图文类型,根据响应图文类型对应的任务请求所需资源的历史资源信息,获得响应所述目标任务请求所需资源的第一资源信息,若所述目标任务请求对应的数据类型为音视频类型,根据所述目标任务请求对应的数据特征,获得所述第一资源信息;

第二信息获得模块,用于根据各台服务器的当前负载的负载信息、处于连接状态的长连接中对应于图文类型的任务请求的第一连接的数量、对应于音视频类型的任务请求的第二连接的数量、空闲的第三连接的数量以及处于连接状态的长连接的平均创建耗时,获得各台服务器的可用资源的第二资源信息;

任务请求分配模块,用于根据所述第一资源信息和各第二资源信息,从各台服务器中分配用于响应所述目标任务请求、且使得服务器间资源占用差异最小的目标服务器,以使得所述目标服务器与所述客户端针对所述目标任务请求建立长连接,并基于所建立的长连接响应所述目标任务请求。

12.一种电子设备,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;

存储器,用于存放计算机程序;

处理器,用于执行存储器上所存放的程序时,实现权利要求1‑10任一所述的方法步骤。

13.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1‑10任一所述的方法步骤。

说明书 :

一种负载均衡方法、装置、设备以及存储介质

技术领域

[0001] 本发明涉及数据处理技术领域,特别是涉及一种负载均衡方法、装置、设备以及存储介质。

背景技术

[0002] 各种平台为了向客户提供较佳的服务,一般通过客服系统向客户提供客服服务。为了应对大规模的客服请求,客服系统中一般配置有多台服务器,客户通过其所使用的客户端向客服系统发起客服请求后,与多台服务器中的一台服务器建立长连接,并由该台服务器为客户提供客服服务。
[0003] 然而,客户端与服务器之间建立的长连接会消耗服务器的资源,为此,需要提供一种负载均衡方案,以保证各台服务器的负载均衡,减少个别服务器出现负载过高或者过低的情况。

发明内容

[0004] 本发明实施例的目的在于提供一种负载均衡方法、装置、设备以及存储介质,以实现多个服务器的负载均衡。
[0005] 本发明实施例提供了一种负载均衡方法,所述方法包括:
[0006] 响应于客户端发送的目标任务请求,若所述目标任务请求对应的数据类型为图文类型,根据响应图文类型对应的任务请求所需资源的历史资源信息,获得响应所述目标任务请求所需资源的第一资源信息,若所述目标任务请求对应的数据类型为音视频类型,根据所述目标任务请求对应的数据特征,获得所述第一资源信息;
[0007] 根据各台服务器的当前负载的负载信息、处于连接状态的长连接中对应于图文类型的任务请求的第一连接的数量、对应于音视频类型的任务请求的第二连接的数量、空闲的第三连接的数量以及处于连接状态的长连接的平均创建耗时,获得各台服务器的可用资源的第二资源信息;
[0008] 根据所述第一资源信息和各第二资源信息,从各台服务器中分配用于响应所述目标任务请求、且使得服务器间资源占用差异最小的目标服务器,以使得所述目标服务器与所述客户端针对所述目标任务请求建立长连接,并基于所建立的长连接响应所述目标任务请求。
[0009] 本发明实施例还提供了一种负载均衡装置,所述装置包括:
[0010] 第一信息获得模块,用于响应于客户端发送的目标任务请求,若所述目标任务请求对应的数据类型为图文类型,根据响应图文类型对应的任务请求所需资源的历史资源信息,获得响应所述目标任务请求所需资源的第一资源信息,若所述目标任务请求对应的数据类型为音视频类型,根据所述目标任务请求对应的数据特征,获得所述第一资源信息;
[0011] 第二信息获得模块,用于根据各台服务器的当前负载的负载信息、处于连接状态的长连接中对应于图文类型的任务请求的第一连接的数量、对应于音视频类型的任务请求的第二连接的数量、空闲的第三连接的数量以及处于连接状态的长连接的平均创建耗时,获得各台服务器的可用资源的第二资源信息;
[0012] 任务请求分配模块,用于根据所述第一资源信息和各第二资源信息,从各台服务器中分配用于响应所述目标任务请求、且使得服务器间资源占用差异最小的目标服务器,以使得所述目标服务器与所述客户端针对所述目标任务请求建立长连接,并基于所建立的长连接响应所述目标任务请求。
[0013] 本发明实施例还提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
[0014] 存储器,用于存放计算机程序;
[0015] 处理器,用于执行存储器上所存放的程序时,实现上述负载均衡方法步骤。
[0016] 本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述负载均衡方法步骤。
[0017] 本发明实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述负载均衡方法。
[0018] 本发明实施例有益效果:
[0019] 本发明实施例提供的方案中,在为目标任务请求分配目标服务器时,既考虑了各台服务器的可用资源,也考虑各任务请求的所需资源,并据此分配目标服务器,使得分配目标服务器后,服务器间资源占用差异最小,也就是各服务器的资源占用率较为接近,实现了负载均衡。
[0020] 在此情况下,由于各服务器上均存在接近的资源占用率,相当每一服务器上的资源均被使用,不会出现部分服务器一直不被分配任务请求而导致资源利用率低的状况。且相比于只是通过参考服务器性能,也就是只考虑服务器的可用资源,本发明实施例提供的方案考虑任务请求的所需资源,参考的信息更为充分,分配方案的均衡效果更优。
[0021] 另外,在计算任务请求所需资源时,会考虑目标任务请求的数据类型,由于不同数据类型的任务请求消耗资源的特点不同,按数据类型选择对应的获取资源信息的方法,所得第一资源信息对所需资源的预测更为准确。
[0022] 当然,实施本发明的任一产品或方法并不一定需要同时达到以上所述的所有优点。

附图说明

[0023] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的实施例。
[0024] 图1A为本发明实施例提供的第一种负载均衡方法的流程示意图。
[0025] 图1B为本发明实施例提供的第二种负载均衡方法的流程示意图。
[0026] 图2为本发明实施例提供的一种资源信息方法的流程示意图。
[0027] 图3为本发明实施例提供的一种模型训练方法的流程示意图。
[0028] 图4为本发明实施例提供的第三种负载均衡方法的流程示意图。
[0029] 图5为本发明实施例提供的第一种负载均衡装置的结构示意图。
[0030] 图6为本发明实施例提供的第二种负载均衡装置的结构示意图。
[0031] 图7为本发明实施例提供的一种电子设备的结构示意图。

具体实施方式

[0032] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员基于本申请所获得的所有其他实施例,都属于本发明保护的范围。
[0033] 下面对本发明实施例所提供方案的执行主体进行说明。
[0034] 以服务系统为例,对本发明实施例的执行主体进行说明。为了便于向客户提供服务,服务系统可以包括多台服务器,每一台服务器可以与发送任务请求的客户端建立长连接,且每一台服务器可以同时维护与多个客户端之间的多个长连接。
[0035] 在此情况下,本发明实施例提供的负载均衡方案的执行主体可以是对上述各台服务器进行管理的管理设备,管理设备可以是一台具有服务器管理功能的电子设备,管理设备可以独立于上述多台服务器存在,也可以是上述多台服务器之一。
[0036] 下面对本发明实施例提供方案的应用场景进行举例说明。
[0037] 应用场景一:上述服务系统为客服系统,客服系统通过与客户端进行交互向使用客户端的客户提供对话服务。对话服务的方式可能是语音对话、文本对话、视频对话等,不同方式下的对话服务均通过客户端与客服系统中的服务器建立长连接完成。若在一段时间内,大量长连接接入客服系统中的服务器,且服务器对每一长连接均提供指定方式的对话服务,将严重消耗服务器资源。因此,客服系统中可以设置有多台能够提供上述对话服务的服务器,并采用本发明实施例提供的负载均衡方案,为各客户端分配建立长连接的服务器。
[0038] 应用场景二:上述服务系统为消息推动系统,消息推送系统向各客户端推送消息,所推送的消息可以是语音、文本、视频等各类型消息。在消息推送系统中,可以设置多台服务器并采用本发明实施例提供的负载均衡方案,为各客户端分配建立长连接、并推送消息的服务器。
[0039] 下面对本发明实施例提供的负载均衡方法进行详细说明。
[0040] 本发明的一个实施例中,参见图1A,提供了第一种负载均衡方法的流程示意图,该方法包括以下步骤S101‑S103。
[0041] 步骤S101:响应于客户端发送的目标任务请求,若目标任务请求对应的数据类型为图文类型,根据响应图文类型对应的任务请求所需资源的历史资源信息,获得响应目标任务请求所需资源的第一资源信息,若目标任务请求对应的数据类型为音视频类型,根据目标任务请求对应的数据特征,获得第一资源信息。
[0042] 目标任务请求是用于获取服务器所提供服务的请求。
[0043] 目标任务请求的请求信息可以表示客户端所请求的服务,例如,所请求的服务可以是获得文本,或者进行语音对话、视频对话等。
[0044] 目标任务请求对应的数据类型可以理解为:服务器响应目标任务请求并与客户端进行数据交互,所交互的数据的类型。
[0045] 上述图文类型包括图片子类型和文字子类型,音视频类型:包括音频子类型和视频子类型。每一种子类型对应一种上述进行数据交互的过程中所交互的数据的类型。
[0046] 相对于目标任务请求,历史资源信息表示在过去的一段时间内各服务器响应同类型任务请求消耗服务器资源。同类型任务请求与目标任务请求对应的数据类型相同,例如,在目标任务请求对应的数据类型为图文类型的情况下,同类型任务请求也是图文类型对应的任务请求。
[0047] 服务器资源可以是网络带宽资源,也可以是计算资源;其中,计算资源可以包括CPU(Central Processing Unit,中央处理器)资源和内存资源。
[0048] 消耗服务器资源会在服务器上产生相应的负载,例如,在消耗网络带宽资源时产生网络带宽负载,在消耗计算资源时产生CPU负载和内存负载的综合负载。
[0049] 服务器响应目标任务请求并与客户端进行数据交互,所交互的数据的特征即为数据特征。其中,交互的数据的类型不同,数据特征也不同,例如交互的数据为图像数据,则数据特征可以是图像的分辨率等;若交互的数据为音频数据,则数据特征可以是音频的比特率等。
[0050] 上述数据特征可以根据目标任务请求对应的数据类型的子类型确定,具体的,对目标任务请求在预期建立长连接后待交互数据所具有子类型下的属性进行提取,可以得到数据特征,例如,对待交互的音频数据,可以提取的音频子类型下的属性有比特率等;对待交互的视频数据,可以提取视频子类型下的属性有视频中画面的分辨率等,具体参见后续实施例,此处暂不详述。
[0051] 第一资源信息表示响应任务请求所需资源的预测值,可以包括所需的网络带宽资源和计算资源。在目标任务请求对应的数据类型不同的情况下下,第一资源信息的获得方式不同。
[0052] 具体获得方式参见后续实施例,此处暂不详述。
[0053] 步骤S102:根据各台服务器的当前负载的负载信息、处于连接状态的长连接中对应于图文类型的任务请求的第一连接的数量、对应于音视频类型的任务请求的第二连接的数量、空闲的第三连接的数量以及处于连接状态的长连接的平均创建耗时,获得各台服务器的可用资源的第二资源信息。
[0054] 其中,一台服务器可以与多个客户端建立长连接。
[0055] 上述负载信息表示服务器当前已消耗的资源。
[0056] 上述第一连接为对应于图文类型的任务请求的长连接;第二连接为对应于音视频类型的任务请求的长连接;第三连接为空闲的长连接。
[0057] 对各长连接创建耗时求平均值,可以得到上述平均创建耗时。
[0058] 第二资源信息为服务器的可用资源的预测信息。
[0059] 由于长连接初始化会消耗部分服务器资源形成负载,但是该部分负载并不是长连接中数据交互形成的负载,且仅在初始化的一段时间内存在。因此,若所得负载信息包括了初始化形成的负载,而在收到负载信息时长连接初始化已完成,则负载信息表示服务器的当前负载可能仍然包括之前初始化形成的负载,造成负载信息不准确,也就是难以准确表示接收到该负载信息的时刻服务器上真实的负载状况。
[0060] 因此,需要对服务器负载进行预测,根据预测的负载确定服务器的可用资源。
[0061] 具体的,第二资源信息获得方法参见后续实施例,此处暂不详述。
[0062] 步骤S103:根据第一资源信息和各第二资源信息,从各台服务器中分配用于响应目标任务请求、且使得服务器间资源占用差异最小的目标服务器,以使得目标服务器与客户端针对目标任务请求建立长连接,并基于所建立的长连接响应目标任务请求。
[0063] 资源占用差异表示各个服务器之间的资源占用率的差异。资源占用差异最小说明每一服务器的资源占用率与其他服务器的资源占用率均相同或相近。
[0064] 在传统分配策略中,采用的负载均衡方式基于固定的分配方式获得,例如平均负载、轮流负载等方式,未考虑分配后的资源占用差异,负载均衡效果一般。而本发明实施例提供的方案中,基于资源占用差异选择目标服务器,使得分配目标服务器后各服务器的负载状况差异较小,均衡效果较好。
[0065] 由上可见,本发明实施例提供的方案中,在为目标任务请求分配目标服务器时,既考虑了各台服务器的可用资源,也考虑各任务请求的所需资源,并据此分配目标服务器,使得分配目标服务器后,服务器间资源占用差异最小,也就是各服务器的资源占用率较为接近,实现了负载均衡。
[0066] 在此情况下,由于各服务器上均存在接近的资源占用率,相当每一服务器上的资源均被使用,不会出现部分服务器一直不被分配任务请求而导致资源利用率低的状况。且相比于只是通过参考服务器性能,也就是只考虑服务器的可用资源,本发明实施例提供的方案考虑任务请求的所需资源,参考的信息更为充分,分配方案的均衡效果更优。
[0067] 另外,在计算任务请求所需资源时,会考虑目标任务请求的数据类型,由于不同数据类型的任务请求消耗资源的特点不同,按数据类型选择对应的获取资源信息的方法,所得第一资源信息对所需资源的预测更为准确。
[0068] 下面对步骤S102中第二资源信息的获得方式进行说明。
[0069] 本发明的一个实施例中,参见图1B,前述步骤S102,可以按照以下步骤S1021‑S1025,获得各台服务器的可用资源的第二资源信息。
[0070] 步骤S1021:获得服务器的网络资源中当前被占用的带宽资源信息,并获得服务器的计算资源中当前被占用的计算资源信息。
[0071] 带宽资源信息表示当前网络带宽负载,即当前网络带宽资源的被占用的状况。
[0072] 计算资源信息可以表示服务器中计算资源被占用的状况。具体的,计算资源信息包括被占用CPU的资源量,即CPU负载,被占用内存的资源量,即内存负载。
[0073] 上述带宽资源信息、计算资源信息均可以通过预设的负载查询指令获得。例如,使用free指令查询计算资源中内存被占用的状况。
[0074] 步骤S1022:获得服务器处于连接状态的长连接中对应于图文类型的任务请求的第一连接的数量、对应于音视频类型的任务请求的第二连接的数量、空闲的第三连接的数量以及处于连接状态的长连接的平均创建耗时。
[0075] 本发明的一个实施例中,管理设备可以监听各服务器在与客户端基于长连接进行的交互,根据监听时获取的交互数据类型确定各长连接所属的任务请求对应的数据类型,再统计各类型下长连接的数量,可以得到第一连接、第二连接、第三连接的数量。
[0076] 其中,上述对于对应于音视频类型的任务请求的第二连接的数量,可以由对应于音频子类型的任务请求的连接数量和对应于视频子类型的任务请求的连接数量确定,例如,第二连接的数量中包含两个子数量,一个是对应于音频子类型的任务请求的连接数量,另一个是对应于视频子类型的任务请求的连接数量,其中,对应音频子类型的任务请求可以是语音通话请求,对应视频子类型的任务请求可以是视频通话请求。
[0077] 上述平均创建耗时可以通过在一段时间内记录各长连接建立的时长并计算所记录的时长的平均值获得。
[0078] 步骤S1023:根据带宽资源信息、第一连接的数量、第二连接的数量、第三连接的数量以及平均创建耗时,获得第一特征。
[0079] 一种实现方式中,根据带宽资源信息、第一连接的数量、第二连接的数量、第三连接的数量以及平均创建耗时可以形成特征向量,表示第一特征,具体的,第一特征可以用下述特征向量表示:
[0080]
[0081] 其中, 表示第一特征, 为带宽资源信息, 为对应于视频子类型的任务请求的连接数量, 为对应于音频子类型的任务请求的连接数量, 为第一连接的数量, 为第三连接的数量, 为平均创建耗时。
[0082] 另一种实现方式中,第一特征也可以用带宽资源信息、第一连接的数量、第二连接的数量、第三连接的数量以及平均创建耗时拼接得到的特征值表示。本发明实施例并不对此进行限定。
[0083] 步骤S1024:根据计算资源信息、第一连接的数量、第二连接的数量、第三连接的数量以及平均创建耗时,获得第二特征。
[0084] 一种实现方式中,可以根据计算资源信息、第一连接的数量、第二连接的数量、第三连接的数量以及平均创建耗时可以形成特征向量,表示第二特征 ,如下:
[0085]
[0086] 表示服务器综合负载,也就是计算资源信息, 为检测到的当前CPU负载; 为检测到的当前内存负载;α和β为预设的权重系数且α+β=1;
与步骤S1023相同,此处不再详述。
[0087] 另一种实现方式中,第一特征也可以用计算资源信息、第一连接的数量、第二连接的数量、第三连接的数量以及平均创建耗时拼接得到的特征值表示。
[0088] 步骤S1025:根据第一特征和第二特征,获得服务器的可用资源的第二资源信息。
[0089] 一种实现方式中,第二资源信息可以根据已响应过任务请求的服务器的可用资源情况获得,例如,记录历史上响应各任务请求时服务器的可用资源,并记录响应各任务请求时处于连接状态的长连接,得到历史上第一特征、第二特征与服务器可用资源的对应关系。在此情况下,可以确定与当前的第一特征和第二特征相似的历史上第一特征、第二特征,并根据所确定的历史上第一特征、第二特征和对应关系,获得可用资源的第二资源信息。
[0090] 另一种实现方式中,第二资源信息也可基于预先训练的网络模型获得。使用网络模型获得第二资源信息的具体实现方式参见后续实施例,此处暂不详述。
[0091] 由上可见,本发明实施例提供的方案中,除了考虑当前的各台服务器的带宽资源和计算资源的占用,还会考虑对应于不同数据类型的任务请求的长连接数量,根据多重因素预测服务器性能,这样在存在对应于图文类型、音视频类型的任务请求时,可以结合图文类型、音视频类型的特征对服务器所需资源准确感知。由于服务器响应图文类型和音视频类型所消耗的资源不同的,这样做可以结合响应目标任务请求时具体存在的对应于不同数据类型的任务请求的长连接计算可用资源,提高了计算的准确率。由于在获取负载信息的过程中会花费时间,这样获取到的负载信息实际上是过去一段时间之前的负载信息,实时性较差。相对于仅根据负载信息得到第二资源信息,本发明实施例提供的参考了更为丰富的特征信息,从而减少了因为获取负载信息存在延迟导致获得的第二资源信息不准确的情况。
[0092] 下面对前述步骤S1025中获得第二资源信息的具体实现方式进行说明。
[0093] 本发明的一个实施例中,上述步骤S1025,可以采用如下方式实现:
[0094] 将第一特征和第二特征输入预先训练的可用资源预测模型,得到可用资源预测模型输出的服务器的可用资源的第二资源信息。
[0095] 其中,可用资源预测模型为:以第一样本特征和第二样本特征为输入,以样本数据中的可用资源的样本资源信息为监督信息,对预设的第一神经网络模型进行训练得到的用于预测服务器的可用资源的资源信息的模型。
[0096] 样本数据为:按照预设周期对样本服务器进行数据采集得到的数据;第一样本特征为:根据样本数据中包括的样本带宽资源信息、第一样本连接的数量、第二样本连接的数量、第三样本连接的数量以及样本平均创建耗时获得的特征,第二样本特征为:根据样本计算资源信息、第一样本连接的数量、第二样本连接的数量、第三样本连接的数量以及样本平均创建耗时获得的特征。
[0097] 其中,第一神经网络模型可以是BP(back propagation,反向传播)神经网络模型。
[0098] 以下举例说明可用资源预测模型的训练方式。
[0099] 例如,可以将第一样本特征、第二样本特征输入待训练的第一神经网络模型,得到第一神经网络模型输出的第二资源信息,与预设周期内采集的、作为监督信息的样本资源信息进行对比,根据对比所得的差异,调整第一神经网络模型的模型参数;
[0100] 上述过程可以重复进行多个轮次,也就提取多个周期的第一样本特征、第二样本特征训练第一神经网络模型。
[0101] 上述过程中所使用第一样本特征和第二样本特征与前述步骤S1023‑S1024中第一特征与第二特征的获得方式类似,区别仅在于第一样本连接的数量与第一连接的数量、第二样本连接的数量与第二连接的数量等名称概念上的替换,此处不再详述。
[0102] 由上可见,本发明实施例提供的方案中,通过训练第一神经网络模型,使得训练后得到的可用资源预测模型学习到根据第一特征、第二特征预测可用资源的能力,从而能够根据可用资源预测模型,较为准确地得到可用资源的第二资源信息,所得可用资源能够较为准确符合服务器的真实负载情况,在长连接初始化存在延迟的情况下,也能够实时获取到服务器的真实负载情况。
[0103] 下面对前述步骤S101中若目标任务请求对应的数据类型为图文类型,获得第一资源信息的具体实现方式。
[0104] 本发明的一个实施例中,参见图2,第一资源信息可以按照以下步骤S201‑S205获得:
[0105] 步骤S201:获得各台服务器在预设的第一历史时长内响应图文类型对应的任务请求所需带宽资源的历史平均带宽资源信息。
[0106] 第一历史时长为预设的时长,表示当前时刻之前的一段时间。具体的,第一历史时长可以设置为2小时、3小时等。
[0107] 本发明的一个实施例中,可以计算各服务器在第一历史时长内被消耗的带宽资源的平均值,得到包含所得平均值的历史平均带宽资源信息。
[0108] 步骤S202:获得各台服务器在第一历史时长内响应图文类型对应的任务请求所需计算资源的历史平均计算资源信息。
[0109] 本发明的一个实施例中,可以计算各服务器在第一历史时长内被消耗的计算资源的平均值,得到包含所得平均值的历史平均计算资源信息。
[0110] 步骤S203:获得根据预设的第一历史时长内响应图文类型对应的任务请求所需带宽资源的历史最大值和第二历史时长内响应图文类型对应的任务请求所需带宽资源的平均值确定的第一浮动系数。
[0111] 第一历史时长、第二历史时长均为人为设置的时间段,例如第一历史时长设置为2小时,第二历史时长设置为1小时等。
[0112] 第一浮动系数是用于调整历史平均带宽资源信息的数值大小的调整值。
[0113] 一种实现方式中,第一浮动系数可以按照以下公式确定:
[0114]
[0115] 其中, 为第一浮动系数, 为第一历史时长中历史带宽负载最大值,即各服务器消耗带宽资源的最大值; 为第二历史时长内的历史带宽负载平均值,即第二历史时长内各服务器消耗带宽资源的平均值。
[0116] 步骤S204:获得根据预设的第一历史时长内响应图文类型对应的任务请求所需计算资源的历史最大值和第二历史时长内响应图文类型对应的任务请求所需计算资源的平均值确定的第二浮动系数。
[0117] 第二浮动系数是用于调整历史平均计算资源信息的数值大小的调整值。
[0118] 一种实现方式中,第二浮动系数可以按照以下公式确定:
[0119]
[0120] 其中, 为第二浮动系数, 为第一历史时长中历史综合负载最大值,即各服务器消耗计算资源的最大值; 为第二历史时长内的历史综合负载平均值,即第二历史时长内各服务器消耗计算资源的平均值。
[0121] 步骤S205:根据历史平均带宽信息和第一浮动系数获得带宽资源预测值,并根据历史平均计算资源信息和第二浮动系数获得计算资源预测值,得到带宽资源预测值、计算资源预测值表示的响应目标任务请求所需资源的第一资源信息。
[0122] 下面说明带宽资源预测值、计算资源预测值的获得方式。
[0123] 一种实现方式中,将第一浮动系数与历史平均带宽资源信息 相乘,得到带宽资源预测值 ;将第一浮动系数与历史平均计算资源信息 相乘,得到计算资源预测值 。
[0124] 另一种实现方式中,可以第一浮动系数与历史平均带宽资源信息、第一浮动系数与历史平均计算资源信息分被相加,得到带宽资源预测值  、计算资源预测值 。
[0125] 据此,可以得到包含计算资源预测值与带宽资源预测值的第一资源信息。
[0126] 由于图文数据在长连接中的传输可能受用户输入的影响,即传输时占用较多带宽,而空闲时则闲置,为防止带宽出现不足,则加入浮动系数,且浮动系数计算过程中考虑了各服务器历史上消耗带宽资源、计算资源的最大值,使得根据第一资源信息分配目标服务器时,可以为任务请求分配足以承担长连接交互数据时资源消耗较高的服务器,保障分配的服务器资源充足,能够提供任务请求所需的服务。
[0127] 下面说明若目标任务请求对应的数据类型为音视频类型,第一资源信息的获得方式。
[0128] 本发明的一个实施例中,在目标任务请求对应的数据类型为音视频类型,可以根据目标任务请求对应的数据特征,获得第一资源信息,包括:
[0129] 若目标任务请求对应的数据类型为音频子类型,获得根据音频的比特率、采样率以及音频道数确定的数据特征;若目标任务请求对应的数据类型为视频子类型,获得根据视频中画面的分辨率、帧率、码率以及视频中声音的比特率、采样率、音频道数确定的数据特征;根据数据特征,获得第一资源信息。
[0130] 第一资源信息可以基于已建立过长连接的任务请求实际消耗的所需资源确定。例如,记录历史上响应各任务请求时服务被消耗的资源,得到各任务请求的所需资源,并记录目标任务请求对应的数据特征,建立所需资源和数据特征间的对应关系。在此情况下,得到目标任务请求的数据特征后,可以基于所需资源和数据特征间的对应关系,确定目标任务请求的所需资源,得到第一资源信息。
[0131] 第一资源信息也可基于预先训练的网络模型获得。使用网络模型获得第一资源信息的具体实现方式参见后续实施例,此处暂不详述。
[0132] 由于视频通话和语音通话过程中存在转码和压缩等工作,对CPU、内存和网络均有较大的占用,且占用的程度依赖于通信的质量,因此对于该类型的目标任务请求,获得其多方面的数据特征,能够较为准确的反映通信时的实际资源消耗,所得第一资源信息较为准确。
[0133] 下面对基于预先训练的网络模型获得第一资源信息的实现方式进行说明。
[0134] 本发明的一个实施例中,根据数据特征,获得第一资源信息,包括:
[0135] 将数据特征输入预先训练的所需资源预测模型,获得所需资源预测模型输出的第一资源信息,其中,所需资源预测模型为:以样本数据特征为输入,以响应样本任务请求消耗资源的样本资源信息为监督信息,对预设的第二神经网络模型进行训练得到的、用于预测响应音视频类型所对应任务请求需要资源的资源信息的模型;
[0136] 样本任务请求的数据类型为音视频类型,在所述样本任务请求对应的数据类型为音频子类型的情况下,所述样本数据特征为:根据音频的样本比特率、样本采样率以及样本音频道数获得的数据特征;在所述样本任务请求对应的数据类型为视频子类型的情况下,所述样本数据特征为:根据视频中画面的样本分辨率、样本帧率、样本码率以及视频中声音的样本比特率、样本采样率、样本音频道数获得的数据特征。
[0137] 样本比特率、样本采样率以及样本音频道为样本数据特征所述的样本数据的比特率、采样率、音频道数;样本分辨率、样本帧率、样本码率为样本数据特征所述的样本数据的视频中画面的分辨率、帧率、码率。
[0138] 上述第二网络模型可以是深度置信网络(DBN,Deep Belief Network)预测模型。
[0139] 具体的模型训练方式可以参考图3所示的实施例。
[0140] 图3中,输入任务请求,即客户端发送的目标任务请求被作为执行主体的管理设备收到后,先判断请求类型,若目标任务请求的子类型为音频子类型,则根据目标任务请求提取语音通话的网络输入参数:比特率、采样率、音频道数;
[0141] 若目标任务请求的子类型为视频子类型,则根据目标任务请求,提取视频通话的网络输入参数:分辨率、帧率与码率,另外,若目标任务请求的视频中包含语音,也可以提取该语音的比特率、采样率、音频道数。
[0142] 对所得上述数据归一化处理,划分训练集和测试集,训练集和测试集均包含部分经过归一化处理得到的样本数据特征。归一化时,对于训练集和测试集中原有的任一一种输入参数,均可按照下述公式进行处理:
[0143]
[0144] 其中,表示经过归一化处理得到的样本数据特征,为接受归一化处理的、标识为i的输入参数。 为该种输入参数中具有的最小值, 为该种输入参数中具有的最大值。
[0145] 然后,确定待训练模型的隐含层层数、节点数、激活函数和权重函数。
[0146] 采用训练集和测试集中的样本数据特征输入待训练模型,根据模型的输出调整模型中的模型参数,完成预测模型,即所需资源预测模型。
[0147] 训练方式与前述实施例中可用资源预测模型的训练方式类似,区别仅在于输入数据、采用的监督信息、调整的模型参数所属的神经网络模型不同,此处不再详述。
[0148] 由上可见,本发明实施例中,除了针对文本图片请求时采用计算平均值的方式得到第一资源信息之外,针对视频通话请求、语音通话请求时采用的样本数据特征训练网络模型,使得网络模型能够根据音视频类型的任务请求进行分析,确定第一资源信息,可以实现对客服系统任务请求所需负载的可靠预测。
[0149] 本发明的一个实施例中,根据第一资源信息和各第二资源信息,从各台服务器中分配用于响应目标任务请求、且使得服务器间资源占用差异最小的目标服务器。包括:
[0150] 根据各服务器分别在预设的第三历史时长内响应任务请求的数据,确定各服务器响应任务请求的可靠程度;根据第一资源信息、各第二资源信息和各服务器对应的可靠程度,从各台服务器中分配用于响应目标任务请求、且使得服务器间资源占用差异最小的目标服务器。
[0151] 第三历史时长为预设的时长,可以是1小时,1天等。
[0152] 可靠程度可以理解为长连接服务在服务器上运行的可用程度,也可以定义为服务可靠性或者服务可信度。由于服务器存在老化,其上运行的服务也会因为服务器老化而出现错误率上升等问题,而在服务器选择的过程中,服务年限较长的服务器容易引起更多的故障,在服务器集群整体容量允许的情况下,更期望考虑将任务请求调度至年限较少故障率较低的机器上,因此在分配目标服务器时参考可靠程度,可以将任务请求分配至较为可靠的服务器,减少故障率。
[0153] 服务器间资源占用差异可以基于为目标任务请求分配目标服务器后,预期的各服务器的资源占用率之间的差异得到。
[0154] 分配目标服务器时,可以将所得各服务器的可靠程度作为计算各服务器间占用资源差异的权重系数,得到占用资源差异最小时分配的目标服务器。具体的实现方式可以参见下述实施例,此处暂不详述。
[0155] 本发明的一个实施例中,第一资源信息、各第二资源信息和各服务器对应的可靠程度,从各台服务器中分配用于响应目标任务请求、且使得服务器间资源占用差异最小的目标服务器,包括:
[0156] 按照以下表达式从各台服务器中分配用于响应目标任务请求、且使得服务器间资源占用差异最小的目标服务器:
[0157]
[0158] 其中,表示各服务器间资源占用差异最小情况下的差异系数; 表示标识为k的资源类型的比例系数,资源类型包括:计算资源和带宽资源; 表示标识为j的服务器分配到所述目标任务请求后在标识为k的资源类型下的资源占用率; 表示标识为 的服务器分配到所述目标任务请求后在标识为k的资源类型下的资源占用率; 为标识为k的资源类型下的所有服务器平均资源占用率;为标识为j的服务器响应任务请求的可靠程度。
[0159] 在上述表达式中,存在下述约束条件:
[0160]
[0161] 其中,为标识为j的服务器可使用资源所占该服务器总资源量的比例。
[0162] 公式中,分子中计算 所得标准差与 平均值之比是变异系数,也就是本公式实现了基于变异系数的服务器分配。根据变异系数的特性可知,在k=1、k=2两种资源类型下,对于每一服务器j计算 的总和最小时,F输出为最小值。在此情况下,任一服务器与其他任一服务器之间的资源占用差异较小,也就是各服务器资源占用率较为接近,实现了负载均衡。相较于只是根据服务器的负载权重分配目标任务请求,本方案考虑了分配后各服务器的资源占用率,均衡效果更优。
[0163] 本发明的一个实施例中,根据各服务器分别在预设的第三历史时长内响应任务请求的数据,确定各服务器响应任务请求的可靠程度,包括:
[0164] 针对每一服务器,获得该服务器在预设的第三历史时长内响应任务请求的总数量、响应任务请求失败的失败数量、响应任务请求超时的超时数量、平均响应时长、服务器故障概率,根据所获得的数据,确定该服务器响应任务请求的可靠程度;根据所获得可靠程度中的最大值以及最小值,对所获得的各个可靠程度进行归一化调整。
[0165] 具体的,可以按照如下公式对任一服务器响应任务请求的可靠程度Y进行归一化处理:
[0166]
[0167] 其中,表示归一化处理后的可靠程度, 表示各服务器中最小的可靠程度,表示各服务器中最大的可靠程度。
[0168] 在前述实施例中计算F的表达式内,使用 为目标任务请求分配服务器的方式与使用Y为目标任务请求分配服务器的实现方式相同,区别仅在于可靠程度的具体数值不同,此处不再详述。
[0169] 归一化处理能够限制可靠程度的数值范围,相对的,采用归一化处理后的可靠程度分配目标服务器,能够减少可靠程度中存在的极端值对分配结果产生的影响。
[0170] 本发明的一个实施例中,可以按照以下表达式确定该服务器响应任务请求的可靠程度:
[0171]
[0172] 其中,Y表示该服务器响应任务请求的可靠程度; 表示该服务器在第三历史时长内响应任务请求的总数量; 表示该服务器在第三历史时长内的平均响应时长; 表示该服务器在第三历史时长内响应任务请求失败的失败数量; 表示该服务器在第三历史时长内响应任务请求超时的超时数量;f表示该服务器的故障概率,可以通过计算单位时间内该发生故障的概率得到。在此情况下实现可靠程度的计算,且所得可靠程度受失败数量、超时数量影响,对服务器的通信状况的表示较为准确。
[0173] 下面结合图4对本发明实施例的整体流程进行说明。
[0174] 首先进行服务器可信度计算,得到各服务器的可靠程度;
[0175] 训练BP神经网络的负载预测模型,即前述实施例中训练第一神经网络模型;
[0176] 训练任务请求负载模型,即前述实施例中训练第二神经网络模型,得到任务请求负载预测模型;
[0177] 接收任务请求,所得任务请求即为目标任务请求;
[0178] BP神经网络的负载预测模型预测服务器负载,得到第二资源信息;
[0179] 任务请求负载预测模型预测任务请求的负载需求,得到第一资源信息;
[0180] 任务请求分配模型得出最优分配方案并分配,即从各台服务器中分配用于响应所述目标任务请求、且使得服务器间资源占用差异最小的目标服务器。
[0181] 与上述负载均衡方法相对应,本发明实施例还提供了一种负载均衡装置。
[0182] 本发明的一个实施例中,参见图5,提供了第一种负载均衡装置的结构示意图,所述装置包括:
[0183] 第一信息获得模块501,用于响应于客户端发送的目标任务请求,若所述目标任务请求对应的数据类型为图文类型,根据响应图文类型对应的任务请求所需资源的历史资源信息,获得响应所述目标任务请求所需资源的第一资源信息,若所述目标任务请求对应的数据类型为音视频类型,根据所述目标任务请求对应的数据特征,获得所述第一资源信息;
[0184] 第二信息获得模块502,用于根据各台服务器的当前负载的负载信息、处于连接状态的长连接中对应于图文类型的任务请求的第一连接的数量、对应于音视频类型的任务请求的第二连接的数量、空闲的第三连接的数量以及处于连接状态的长连接的平均创建耗时,获得各台服务器的可用资源的第二资源信息;
[0185] 任务请求分配模块503,用于根据所述第一资源信息和各第二资源信息,从各台服务器中分配用于响应所述目标任务请求、且使得服务器间资源占用差异最小的目标服务器,以使得所述目标服务器与所述客户端针对所述目标任务请求建立长连接,并基于所建立的长连接响应所述目标任务请求。
[0186] 本发明实施例提供的方案中,在为目标任务请求分配目标服务器时,既考虑了各台服务器的可用资源,也考虑各任务请求的所需资源,并据此分配目标服务器,使得分配目标服务器后,服务器间资源占用差异最小,也就是各服务器的资源占用率较为接近,实现了负载均衡。
[0187] 在此情况下,由于各服务器上均存在接近的资源占用率,相当每一服务器上的资源均被使用,不会出现部分服务器一直不被分配任务请求而导致资源利用率低的状况。且相比于只是通过参考服务器性能,也就是只考虑服务器的可用资源,本发明实施例提供的方案考虑任务请求的所需资源,参考的信息更为充分,分配方案的均衡效果更优。
[0188] 另外,在计算任务请求所需资源时,会考虑目标任务请求的数据类型,由于不同数据类型的任务请求消耗资源的特点不同,按数据类型选择对应的获取资源信息的方法,所得第一资源信息对所需资源的预测更为准确。
[0189] 本发明的一个实施例中,所述第二信息获得模块502,具体用于按照以下方式,获得各台服务器的可用资源的第二资源信息:
[0190] 获得服务器的网络资源中当前被占用的带宽资源信息,并获得服务器的计算资源中当前被占用的计算资源信息;
[0191] 获得服务器处于连接状态的长连接中对应于图文类型的任务请求的第一连接的数量、对应于音视频类型的任务请求的第二连接的数量、空闲的第三连接的数量以及处于连接状态的长连接的平均创建耗时;
[0192] 根据所述带宽资源信息、第一连接的数量、第二连接的数量、第三连接的数量以及平均创建耗时,获得第一特征;
[0193] 根据所述计算资源信息、第一连接的数量、第二连接的数量、第三连接的数量以及平均创建耗时,获得第二特征;
[0194] 根据所述第一特征和所述第二特征,获得服务器的可用资源的第二资源信息。
[0195] 由上可见,本发明实施例提供的方案中,除了考虑当前的各台服务器的带宽资源和计算资源的占用,还会考虑对应于不同数据类型的任务请求的长连接数量,根据多重因素预测服务器性能,这样在存在对应于图文类型、音视频类型的任务请求时,可以结合图文类型、音视频类型的特征对服务器所需资源准确感知。由于服务器响应图文类型和音视频类型所消耗的资源不同的,这样做可以结合响应目标任务请求时具体存在的对应于不同数据类型的任务请求的长连接计算可用资源,提高了计算的准确率。由于在获取负载信息的过程中会花费时间,这样获取到的负载信息实际上是过去一段时间之前的负载信息,实时性较差。相对于仅根据负载信息得到第二资源信息,本发明实施例提供的参考了更为丰富的特征信息,从而减少了因为获取负载信息存在延迟导致获得的第二资源信息不准确的情况。
[0196] 本发明的一个实施例中,所述第二信息获得模块502,具体用于按照以下方式,获得各台服务器的可用资源的第二资源信息:
[0197] 获得服务器的网络资源中当前被占用的带宽资源信息,并获得服务器的计算资源中当前被占用的计算资源信息;获得服务器处于连接状态的长连接中对应于图文类型的任务请求的第一连接的数量、对应于音视频类型的任务请求的第二连接的数量、空闲的第三连接的数量以及处于连接状态的长连接的平均创建耗时;根据所述带宽资源信息、第一连接的数量、第二连接的数量、第三连接的数量以及平均创建耗时,获得第一特征;根据所述计算资源信息、第一连接的数量、第二连接的数量、第三连接的数量以及平均创建耗时,获得第二特征;将所述第一特征和所述第二特征输入预先训练的可用资源预测模型,得到所述可用资源预测模型输出的服务器的可用资源的第二资源信息;
[0198] 其中,所述可用资源预测模型为:以第一样本特征和第二样本特征为输入,以样本数据中的可用资源的样本资源信息为监督信息,对预设的第一神经网络模型进行训练得到的用于预测服务器的可用资源的资源信息的模型;
[0199] 所述样本数据为:按照预设周期对样本服务器进行数据采集得到的数据;所述第一样本特征为:根据所述样本数据中包括的样本带宽资源信息、第一样本连接的数量、第二样本连接的数量、第三样本连接的数量以及样本平均创建耗时获得的特征,所述第二样本特征为:根据所述样本计算资源信息、第一样本连接的数量、第二样本连接的数量、第三样本连接的数量以及样本平均创建耗时获得的特征。
[0200] 由上可见,本发明实施例提供的方案中,通过训练第一神经网络模型,使得训练后得到的可用资源预测模型学习到根据第一特征、第二特征预测可用资源的能力,从而能够根据可用资源预测模型,较为准确地得到可用资源的第二资源信息,所得可用资源能够较为准确符合服务器的真实负载情况,在长连接初始化存在延迟的情况下,也能够实时获取到服务器的真实负载情况。
[0201] 参见图6,本发明的一个实施例中,提供了第二种负载均衡装置的结构示意图,所述第一信息获得模块501,包括:
[0202] 第一信息获得单元5011,用于若所述目标任务请求对应的数据类型为图文类型,根据响应图文类型对应的任务请求所需资源的历史资源信息,获得响应所述目标任务请求所需资源的第一资源信息;
[0203] 第二信息获得单元5012,用于若所述目标任务请求对应的数据类型为音视频类型,根据所述目标任务请求对应的数据特征,获得所述第一资源信息;
[0204] 本发明的一个实施例中,上述第一信息获得单元5011,包括:
[0205] 带宽资源信息获得子单元5011A,用于获得各台服务器在预设的第一历史时长内响应图文类型对应的任务请求所需带宽资源的历史平均带宽资源信息;
[0206] 计算资源信息获得子单元5011B,用于获得各台服务器在所述第一历史时长内响应图文类型对应的任务请求所需计算资源的历史平均计算资源信息;
[0207] 第一浮动系数确定子单元5011C,用于获得根据所述第一历史时长内响应图文类型对应的任务请求所需带宽资源的历史最大值和预设的第二历史时长内响应图文类型对应的任务请求所需带宽资源的平均值确定的第一浮动系数;
[0208] 第二浮动系数确定子单元5011D,用于获得根据所述第一历史时长内响应图文类型对应的任务请求所需计算资源的历史最大值和所述第二历史时长内响应图文类型对应的任务请求所需计算资源的平均值确定的第二浮动系数;
[0209] 第一资源信息获得子单元5011E,用于根据所述历史平均带宽信息和所述第一浮动系数获得带宽资源预测值,并根据所述历史平均计算资源信息和所述第二浮动系数获得计算资源预测值,得到所述带宽资源预测值、计算资源预测值表示的响应所述目标任务请求所需资源的第一资源信息。
[0210] 由于图文数据在长连接中的传输可能受用户输入的影响,即传输时占用较多带宽,而空闲时则闲置,为防止带宽出现不足,则加入浮动系数,且浮动系数计算过程中考虑了各服务器历史上消耗带宽资源、计算资源的最大值,使得根据第一资源信息分配目标服务器时,可以为任务请求分配足以承担长连接交互数据时资源消耗较高的服务器,保障分配的服务器资源充足,能够提供任务请求所需的服务。
[0211] 本发明的一个实施例中,上述第二信息获得单元5012,包括:
[0212] 第一特征获得子单元5012A,若所述目标任务请求对应的数据类型为音频子类型,获得根据音频的比特率、采样率以及音频道数确定的数据特征;
[0213] 第二特征获得子单元5012B,若所述目标任务请求对应的数据类型为视频子类型,获得根据视频中画面的分辨率、帧率、码率以及视频中声音的比特率、采样率、音频道数确定的数据特征;
[0214] 第二资源信息获得子单元5012C,根据所述数据特征,获得所述第一资源信息。
[0215] 由于视频通话和语音通话过程中存在转码和压缩等工作,对CPU、内存和网络均有较大的占用,且占用的程度依赖于通信的质量,因此对于该类型的目标任务请求,获得其多方面的数据特征,能够较为准确的反映通信时的实际资源消耗,所得第一资源信息较为准确。
[0216] 本发明的一个实施例中,第二资源信息获得子单元5012C,具体用于将所述数据特征输入预先训练的所需资源预测模型,获得所述所需资源预测模型输出的第一资源信息,其中,所述所需资源预测模型为:以样本数据特征为输入,以响应样本任务请求消耗资源的样本资源信息为监督信息,对预设的第二神经网络模型进行训练得到的、用于预测响应音视频类型所对应任务请求需要资源的资源信息的模型;
[0217] 所述样本任务请求的数据类型为音视频类型;
[0218] 在所述样本任务请求对应的数据类型为音频子类型的情况下,所述样本数据特征为:根据音频的样本比特率、样本采样率以及样本音频道数获得的数据特征;在所述样本任务请求对应的数据类型为视频子类型的情况下,所述样本数据特征为:根据视频中画面的样本分辨率、样本帧率、样本码率以及视频中声音的样本比特率、样本采样率、样本音频道数获得的数据特征。
[0219] 由上可见,本发明实施例中,除了针对文本图片请求时采用计算平均值的方式得到第一资源信息之外,针对视频通话请求、语音通话请求时采用的样本数据特征训练网络模型,使得网络模型能够根据音视频类型的任务请求进行分析,确定第一资源信息,可以实现对客服系统任务请求所需负载的可靠预测。
[0220] 本发明的一个实施例中,所述任务请求分配模块503,具体用于根据各服务器分别在预设的第三历史时长内响应任务请求的数据,确定各服务器响应任务请求的可靠程度;根据所述第一资源信息、各第二资源信息和各服务器对应的可靠程度,从各台服务器中分配用于响应所述目标任务请求、且使得服务器间资源占用差异最小的目标服务器。
[0221] 因此在分配目标服务器时参考可靠程度,可以将任务请求分配至较为可靠的服务器,减少故障率。
[0222] 本发明的一个实施例中,所述任务请求分配模块503,具体用于根据各服务器分别在预设的第三历史时长内响应任务请求的数据,确定各服务器响应任务请求的可靠程度;按照以下表达式从各台服务器中分配用于响应所述目标任务请求、且使得服务器间资源占用差异最小的目标服务器:
[0223]
[0224] 其中,表示各服务器间资源占用差异最小情况下的差异系数; 表示标识为k的资源类型的比例系数,资源类型包括:计算资源和带宽资源; 表示标识为j的服务器分配到所述目标任务请求后在标识为k的资源类型下的资源占用率; 表示标识为 的服务器分配到所述目标任务请求后在标识为k的资源类型下的资源占用率; 为标识为k的资源类型下的所有服务器平均资源占用率;为标识为j的服务器响应任务请求的可靠程度;m为服务器总数。
[0225] 在上述表达式中,存在下述约束条件:
[0226]
[0227] 其中,为标识为j的服务器可使用资源所占该服务器总资源量的比例。
[0228] 在此情况下,任一服务器与其他任一服务器之间的资源占用差异较小,也就是各服务器资源占用率较为接近,实现了负载均衡。相较于只是根据服务器的负载权重分配目标任务请求,本方案考虑了分配后各服务器的资源占用率,均衡效果更优。
[0229] 本发明的一个实施例中,所述任务请求分配模块503,具体用于针对每一服务器,获得该服务器在预设的第三历史时长内响应任务请求的总数量、响应任务请求失败的失败数量、响应任务请求超时的超时数量、平均响应时长、服务器故障概率,根据所获得的数据,确定该服务器响应任务请求的可靠程度;根据所获得可靠程度中的最大值以及最小值,对所获得的各个可靠程度进行归一化调整;根据所述第一资源信息、各第二资源信息和各服务器对应的可靠程度,从各台服务器中分配用于响应所述目标任务请求、且使得服务器间资源占用差异最小的目标服务器。
[0230] 归一化处理能够限制可靠程度的数值范围,相对的,采用归一化处理后的可靠程度分配目标服务器,能够减少可靠程度中存在的极端值对分配结果产生的影响。
[0231] 本发明的一个实施例中,所述任务请求分配模块503,具体用于针对每一服务器,按照以下表达式确定该服务器响应任务请求的可靠程度:
[0232]
[0233] 其中,Y表示该服务器响应任务请求的可靠程度; 表示该服务器在所述第三历史时长内响应任务请求的总数量; 表示该服务器在所述第三历史时长内的平均响应时长;表示该服务器在所述第三历史时长内响应任务请求失败的失败数量; 表示该服务器在所述第三历史时长内响应任务请求超时的超时数量;f表示该服务器的故障率;根据所获得可靠程度中的最大值以及最小值,对所获得的各个可靠程度进行归一化调整;根据所述第一资源信息、各第二资源信息和各服务器对应的可靠程度,从各台服务器中分配用于响应所述目标任务请求、且使得服务器间资源占用差异最小的目标服务器。
[0234] 在此情况下实现可靠程度的计算,且所得可靠程度受失败数量、超时数量影响,对服务器的通信状况的表示较为准确。
[0235] 本发明实施例还提供了一种电子设备,如图7所示,包括处理器701、通信接口702、存储器703和通信总线704,其中,处理器701,通信接口702,存储器703通过通信总线704完成相互间的通信,
[0236] 存储器703,用于存放计算机程序;
[0237] 处理器701,用于执行存储器703上所存放的程序时,实现前述实施例中负载均衡方法步骤。
[0238] 上述电子设备提到的通信总线可以是外设部件互连标准(Peripheral Component Interconnect,PCI)总线或扩展工业标准结构(Extended Industry  Standard Architecture,EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
[0239] 通信接口用于上述电子设备与其他设备之间的通信。
[0240] 存储器可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non‑Volatile Memory,NVM),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
[0241] 上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field‑Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
[0242] 在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一负载均衡方法的步骤。
[0243] 在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一负载均衡方法。
[0244] 在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk (SSD))等。
[0245] 需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0246] 本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、电子设备以及存储介质实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
[0247] 以上所述仅为本发明的较佳实施例,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。