一种请求消息处理方法及装置转让专利

申请号 : CN201910640620.4

文献号 : CN110290222A

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 秦占明段效晨康林易帆赵艳杰

申请人 : 北京奇艺世纪科技有限公司

摘要 :

本发明实施例提供了一种请求消息处理方法及装置,针对各后端服务器中的每一后端服务器,当接收到该后端服务器发送的第一提醒消息时,判断该后端服务器处理第一提醒消息对应的第一请求消息是否超时,根据判定结果,对该后端服务器当前的权重进行更新,当接收到终端发送的第二请求消息时,根据各后端服务器更新后的权重,将第二请求消息转发至各后端服务器进行处理。基于上述处理,能够避免后端服务器过载,进而,可以在一定程度上避免网络业务的中断。

权利要求 :

1.一种请求消息处理方法,其特征在于,所述方法应用于负载均衡设备,所述方法包括:针对各后端服务器中的每一后端服务器,当接收到该后端服务器发送的第一提醒消息时,判断该后端服务器处理所述第一提醒消息对应的第一请求消息是否超时,其中,所述第一提醒消息用于使所述负载均衡设备确定该后端服务器已完成所述第一请求消息的处理;

根据判定结果,对该后端服务器当前的权重进行更新,其中,一个后端服务器的权重用于表示该后端服务器当前处理请求消息的能力;

当接收到终端发送的第二请求消息时,根据所述各后端服务器更新后的权重,将所述第二请求消息转发至所述各后端服务器进行处理。

2.根据权利要求1所述的方法,其特征在于,所述判断该后端服务器处理所述第一提醒消息对应的第一请求消息是否超时,包括:计算转发所述第一请求消息的时刻,与接收到所述第一提醒消息的时刻之间的时长;

如果计算得到的时长大于第一预设时长,则判定该后端服务器处理所述第一请求消息超时;

如果计算得到的时长不大于所述第一预设时长,则判定该后端服务器处理所述第一请求消息未超时。

3.根据权利要求1所述的方法,其特征在于,所述根据判断结果,对该后端服务器当前的权重进行更新,包括:如果该后端服务器处理所述第一请求消息超时,降低该后端服务器当前的权重;

如果该后端服务器处理所述第一请求消息未超时,提高该后端服务器当前的权重。

4.根据权利要求3所述的方法,其特征在于,在所述提高该后端服务器当前的权重之后,所述方法还包括:判断该后端服务器提高后的权重是否大于第一权重阈值;

如果该后端服务器提高后的权重大于所述第一权重阈值,则根据预设归一化算法和各后端服务器当前的权重,重置该后端服务器的权重,其中,该后端服务器重置后的权重属于预设权重范围。

5.根据权利要求1所述的方法,其特征在于,所述方法还包括:当确定该后端服务器无法正常处理请求消息时,拒绝向该后端服务器转发接收到的请求消息。

6.根据权利要求5所述的方法,其特征在于,在所述拒绝向该后端服务器转发接收到的请求消息之后,所述方法还包括:当达到第二预设时长时,如果该后端服务器当前的权重小于第二权重阈值,则将该后端服务器的权重设置为该后端服务器的初始权重,并允许向该后端服务器转发接收到的请求消息;

如果该后端服务器当前的权重不小于所述第二权重阈值,则允许向该后端服务器转发接收到的请求消息。

7.一种请求消息处理装置,其特征在于,所述装置应用于负载均衡设备,所述装置包括:判断模块,用于针对各后端服务器中的每一后端服务器,当接收到该后端服务器发送的第一提醒消息时,判断该后端服务器处理所述第一提醒消息对应的第一请求消息是否超时,其中,所述第一提醒消息用于使所述负载均衡设备确定该后端服务器已完成所述第一请求消息的处理;

更新模块,用于根据判定结果,对该后端服务器当前的权重进行更新,其中,一个后端服务器的权重用于表示该后端服务器当前处理请求消息的能力;

转发模块,用于当接收到终端发送的第二请求消息时,根据所述各后端服务器更新后的权重,将所述第二请求消息转发至所述各后端服务器进行处理。

8.根据权利要求7所述的装置,其特征在于,所述判断模块,具体用于计算转发所述第一请求消息的时刻,与接收到所述第一提醒消息的时刻之间的时长;

如果计算得到的时长大于第一预设时长,则判定该后端服务器处理所述第一请求消息超时;

如果计算得到的时长不大于所述第一预设时长,则判定该后端服务器处理所述第一请求消息未超时。

9.根据权利要求7所述的装置,其特征在于,所述更新模块,包括:第一处理子模块,用于如果该后端服务器处理所述第一请求消息超时,降低该后端服务器当前的权重;

第二处理子模块,用于如果该后端服务器处理所述第一请求消息未超时,提高该后端服务器当前的权重。

10.根据权利要求9所述的装置,其特征在于,所述第二处理子模块,还用于判断该后端服务器提高后的权重是否大于第一权重阈值;

如果该后端服务器提高后的权重大于所述第一权重阈值,则根据预设归一化算法和各后端服务器当前的权重,重置该后端服务器的权重,其中,该后端服务器重置后的权重属于预设权重范围。

11.根据权利要求7所述的装置,其特征在于,所述装置还包括:第一处理模块,用于当确定该后端服务器无法正常处理请求消息时,拒绝向该后端服务器转发接收到的请求消息。

12.根据权利要求11所述的装置,其特征在于,所述第一处理模块还用于当达到第二预设时长时,如果该后端服务器当前的权重小于第二权重阈值,则将该后端服务器的权重设置为该后端服务器的初始权重,并允许向该后端服务器转发接收到的请求消息;

如果该后端服务器当前的权重不小于所述第二权重阈值,则允许向该后端服务器转发接收到的请求消息。

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

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

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

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

说明书 :

一种请求消息处理方法及装置

技术领域

[0001] 本发明涉及互联网技术领域,特别是涉及一种请求消息处理方法及装置。

背景技术

[0002] 随着互联网技术的发展和普及,越来越多的用户可以使用互联网提供的功能,当用户需要使用互联网提供的某一功能时,用户可以通过终端向负载均衡设备(例如负载均衡服务器)发送相应的请求消息。相应的,负载均衡服务器可以将接收到的请求消息,转发至不同的后端服务器进行处理。后端服务器处理该请求消息之后,可以向终端发送该请求消息对应的响应消息,并向负载均衡服务器发送该请求消息对应的提醒消息,以通告负载均衡服务器该请求消息已处理结束。
[0003] 现有技术中,当负载均衡服务器接收到同一类型的请求消息较多时,可以将同一类型的请求消息转发至不同的后端服务器进行处理,且各后端服务器可以具有不同的预设权重,每一后端服务器的预设权重可以根据该后端服务器的性能(例如内存、CPU等)确定。后续,当负载均衡服务器接收到终端发送的请求消息时,可以根据各后端服务器的预设权重,将接收到的请求消息转发至不同的后端服务器进行处理,例如,负载均衡服务器可以向预设权重较高的后端服务器转发较多的请求消息,向预设权重较低的后端服务器转发较少的请求消息。
[0004] 然而,发明人在实现本发明的过程中发现,现有技术至少存在如下问题:
[0005] 在处理请求消息的过程中,由于负载均衡服务器会向预设权重较高的后端服务器发送较多的请求消息,当该预设权重较高的后端服务器的处理能力降低时,负载均衡服务器仍有可能将较多的请求消息,转发至该预设权重较高的后端服务器进行处理,可能会导致该预设权重较高的后端服务器过载,进而,造成网络业务的中断。

发明内容

[0006] 本发明实施例的目的在于提供一种请求消息处理方法及装置,能够避免后端服务器过载,在一定程度上避免网络业务的中断。具体技术方案如下:
[0007] 第一方面,为了达到上述目的,本发明实施例提供了一种请求消息处理方法,所述方法应用于负载均衡设备,所述方法包括:
[0008] 针对各后端服务器中的每一后端服务器,当接收到该后端服务器发送的第一提醒消息时,判断该后端服务器处理所述第一提醒消息对应的第一请求消息是否超时,其中,所述第一提醒消息用于使所述负载均衡设备确定该后端服务器已完成所述第一请求消息的处理;
[0009] 根据判定结果,对该后端服务器当前的权重进行更新,其中,一个后端服务器的权重用于表示该后端服务器当前处理请求消息的能力;
[0010] 当接收到终端发送的第二请求消息时,根据所述各后端服务器更新后的权重,将所述第二请求消息转发至所述各后端服务器进行处理。
[0011] 可选的,所述判断该后端服务器处理所述第一提醒消息对应的第一请求消息是否超时,包括:
[0012] 计算转发所述第一请求消息的时刻,与接收到所述第一提醒消息的时刻之间的时长;
[0013] 如果计算得到的时长大于第一预设时长,则判定该后端服务器处理所述第一请求消息超时;
[0014] 如果计算得到的时长不大于所述第一预设时长,则判定该后端服务器处理所述第一请求消息未超时。
[0015] 可选的,所述根据判断结果,对该后端服务器当前的权重进行更新,包括:
[0016] 如果该后端服务器处理所述第一请求消息超时,降低该后端服务器当前的权重;
[0017] 如果该后端服务器处理所述第一请求消息未超时,提高该后端服务器当前的权重。
[0018] 可选的,在所述提高该后端服务器当前的权重之后,所述方法还包括:
[0019] 判断该后端服务器提高后的权重是否大于第一权重阈值;
[0020] 如果该后端服务器提高后的权重大于所述第一权重阈值,则根据预设归一化算法和各后端服务器当前的权重,重置该后端服务器的权重,其中,该后端服务器重置后的权重属于预设权重范围。
[0021] 可选的,所述方法还包括:
[0022] 当确定该后端服务器无法正常处理请求消息时,拒绝向该后端服务器转发接收到的请求消息。
[0023] 可选的,在所述拒绝向该后端服务器转发接收到的请求消息之后,所述方法还包括:
[0024] 当达到第二预设时长时,如果该后端服务器当前的权重小于第二权重阈值,则将该后端服务器的权重设置为该后端服务器的初始权重,并允许向该后端服务器转发接收到的请求消息;
[0025] 如果该后端服务器当前的权重不小于所述第二权重阈值,则允许向该后端服务器转发接收到的请求消息。
[0026] 第二方面,为了达到上述目的,本发明实施例提供了一种请求消息处理装置,所述装置应用于负载均衡设备,所述装置包括:
[0027] 判断模块,用于针对各后端服务器中的每一后端服务器,当接收到该后端服务器发送的第一提醒消息时,判断该后端服务器处理所述第一提醒消息对应的第一请求消息是否超时,其中,所述第一提醒消息用于使所述负载均衡设备确定该后端服务器已完成所述第一请求消息的处理;
[0028] 更新模块,用于根据判定结果,对该后端服务器当前的权重进行更新,其中,一个后端服务器的权重用于表示该后端服务器当前处理请求消息的能力;
[0029] 转发模块,用于当接收到终端发送的第二请求消息时,根据所述各后端服务器更新后的权重,将所述第二请求消息转发至所述各后端服务器进行处理。
[0030] 可选的,所述判断模块,具体用于计算转发所述第一请求消息的时刻,与接收到所述第一提醒消息的时刻之间的时长;
[0031] 如果计算得到的时长大于第一预设时长,则判定该后端服务器处理所述第一请求消息超时;
[0032] 如果计算得到的时长不大于所述第一预设时长,则判定该后端服务器处理所述第一请求消息未超时。
[0033] 可选的,所述更新模块,包括:
[0034] 第一处理子模块,用于如果该后端服务器处理所述第一请求消息超时,降低该后端服务器当前的权重;
[0035] 第二处理子模块,用于如果该后端服务器处理所述第一请求消息未超时,提高该后端服务器当前的权重。
[0036] 可选的,所述第二处理子模块,还用于判断该后端服务器提高后的权重是否大于第一权重阈值;
[0037] 如果该后端服务器提高后的权重大于所述第一权重阈值,则根据预设归一化算法和各后端服务器当前的权重,重置该后端服务器的权重,其中,该后端服务器重置后的权重属于预设权重范围。
[0038] 可选的,所述装置还包括:
[0039] 第一处理模块,用于当确定该后端服务器无法正常处理请求消息时,拒绝向该后端服务器转发接收到的请求消息。
[0040] 可选的,所述第一处理模块还用于当达到第二预设时长时,如果该后端服务器当前的权重小于第二权重阈值,则将该后端服务器的权重设置为该后端服务器的初始权重,并允许向该后端服务器转发接收到的请求消息;
[0041] 如果该后端服务器当前的权重不小于所述第二权重阈值,则允许向该后端服务器转发接收到的请求消息。
[0042] 第三方面,本发明实施例还提供一种负载均衡设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
[0043] 存储器,用于存放计算机程序;
[0044] 处理器,用于执行存储器上所存放的程序时,实现上述任一所述的请求消息处理方法的步骤。
[0045] 在本发明实施的又一方面,本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述任一所述的请求消息处理方法的步骤。
[0046] 在本发明实施的又一方面,本发明实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述任一所述的请求消息处理方法。
[0047] 本发明实施例提供了一种请求消息处理方法,可以针对各后端服务器中的每一后端服务器,当接收到该后端服务器发送的第一提醒消息时,判断该后端服务器处理第一提醒消息对应的第一请求消息是否超时,根据判定结果,对该后端服务器当前的权重进行更新,当接收到终端发送的第二请求消息时,根据各后端服务器更新后的权重,将第二请求消息转发至各后端服务器进行处理。
[0048] 基于上述处理,如果某一后端服务器当前处理请求消息超时,表示该后端服务器的处理能力降低,负载均衡服务器可以更新该后端服务器的权重,该后端服务器更新后的权重,能够表示该后端服务器当前的处理能力,负载均衡服务器可以根据各后端服务器当前的处理能力,将接收到的请求消息转发至各后端服务器进行处理,能够避免后端服务器过载,进而,在一定程度上避免网络业务的中断。
[0049] 当然,实施本发明的任一产品或方法并不一定需要同时达到以上所述的所有优点。

附图说明

[0050] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0051] 图1为本发明实施例提供的一种请求消息处理方法的流程图;
[0052] 图2为本发明实施例提供的一种请求消息处理方法示例的流程图;
[0053] 图3为本发明实施例提供的一种请求消息处理系统的架构图;
[0054] 图4为本发明实施例提供的一种请求消息处理装置的结构图;
[0055] 图5为本发明实施例提供的一种负载均衡设备的结构图。

具体实施方式

[0056] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0057] 下面通过具体实施例,对本发明实施例提供的请求消息处理方法进行详细说明。
[0058] 参见图1,图1为本发明实施例提供的一种请求消息处理方法的流程图,可以应用于负载均衡设备,负载均衡设备可以为服务器(可以称为负载均衡服务器),该方法可以包括如下步骤:
[0059] S101:针对各后端服务器中的每一后端服务器,当接收到该后端服务器发送的第一提醒消息时,判断该后端服务器处理第一提醒消息对应的第一请求消息是否超时。
[0060] 其中,第一提醒消息用于使负载均衡设备确定该后端服务器已完成第一请求消息的处理。
[0061] 第一请求消息可以为负载均衡服务器转发至后端服务器进行处理的任一请求消息,后端服务器对第一请求消息处理结束之后,可以向负载均衡服务器发送对应第一请求消息的提醒消息,即为第一提醒消息,以通告负载均衡服务器第一请求消息已处理结束。
[0062] 在发明实施例中,当用户需要使用互联网提供的某一功能时,用户可以通过终端向负载均衡服务器发送相应的请求消息,当负载均衡服务器接收到终端发送的该请求消息时,可以获取能够处理该请求消息的后端服务器(可以称为目标后端服务器)当前的权重,根据目标后端服务器当前的权重,将接收到的该请求消息转发至目标后端服务器进行处理。
[0063] 一个后端服务器当前的权重能够表示该后端服务器当前的处理请求消息的能力。该后端服务器当前的权重可以为该后端服务器的初始权重,也可以为上一次更新后的权重,该后端服务器的初始权重可以根据该后端服务器的性能(例如内存、CPU等)确定。
[0064] 可以理解的是,目标后端服务器可以为一个,也可以为多个。
[0065] 如果目标后端服务器为一个,可以将该请求消息转发至目标后端服务器进行处理。
[0066] 如果目标后端服务器为多个,可以将该请求消息转发至目标后端服务器中当前的权重较高的后端服务器进行处理。
[0067] 一种实现方式中,负载均衡服务器可以在预设路径下记录各后端服务器的地址、各后端服务器当前的权重,以及各后端服务器能够处理的请求消息的消息类型标识。其中,预设路径可以由技术人员根据经验设置。
[0068] 示例性的,如果负载均衡服务器为Zookeeper(一个分布式的,开放源码的分布式应用程序协调服务系统),则预设路径可以为Zookeeper/registry/scoreSer vice路径。当负载均衡服务器接收到查询积分这一类型的请求消息(可以称为查询积分请求消息)时,负载均衡服务器可以获取Zookeeper/registry/scoreServ ice路径下记录的能够处理查询积分请求消息的后端服务器(可以称为查询积分后端服务器)的地址,以及查询积分后端服务器当前的权重,并根据查询积分后端服务器当前的权重,将查询积分请求消息,转发至查询积分后端服务器进行处理。
[0069] 针对每一后端服务器,在该后端服务器处理第一请求消息之后,可以向负载均衡服务器发送相应的第一提醒消息,因此,负载均衡服务器可以在接收到该后端服务器发送的第一提醒消息时,判断该后端服务器处理第一提醒消息对应的第一请求消息是否超时,以根据判定结果进行相应处理。
[0070] 可选的,负载均衡服务器可以记录转发第一请求消息的时刻,以及接收到第一提醒消息的时刻,进而,判断该后端服务器处理第一请求消息是否超时。
[0071] 相应的,S101可以包括以下步骤:
[0072] 步骤一:计算转发第一请求消息的时刻,与接收到第一提醒消息的时刻之间的时长。
[0073] 步骤二:如果计算得到的时长大于第一预设时长,则判定该后端服务器处理第一请求消息超时。
[0074] 其中,第一预设时长可以由技术人员根据经验设置。
[0075] 一种实现方式中,如果负载均衡服务器向该后端服务器转发第一请求消息的时刻为T1,接收到该后端服务器发送的第一提醒消息的时刻为T2,计算T1与T2之间的时长S1。
[0076] 如果S1大于第一预设时长,则负载均衡服务器可以判定该后端服务器处理第一请求消息超时。
[0077] 步骤三:如果计算得到的时长不大于第一预设时长,则判定该后端服务器处理第一请求消息未超时。
[0078] 另一种实现方式中,如果负载均衡服务器向该后端服务器转发第一请求消息的时刻为T3,接收到该后端服务器发送的第一提醒消息的时刻为T4,计算T3与T4之间的时长S2。
[0079] 如果S2小于或者等于第一预设时长,则负载均衡服务器可以判定该后端服务器处理第一请求消息未超时。
[0080] 基于上述处理,负载均衡服务器可以对后端服务器处理请求消息是否超时进行判断,即判断后端服务器当前的处理能力,以根据判定结果进行相应处理。
[0081] S102:根据判定结果,对该后端服务器当前的权重进行更新。
[0082] 其中,一个后端服务器的权重用于表示该后端服务器当前处理请求消息的能力。
[0083] 一个后端服务器当前的权重可以为该后端服务器的初始权重,也可以为上一次更新后的权重。
[0084] 针对每一后端服务器,负载均衡服务器在判断该后端服务器处理第一提醒消息对应的第一请求消息是否超时之后,可以根据判定结果对该后端服务器当前的权重进行更新。
[0085] 根据判定结果,对该后端服务器当前的权重进行更新的方法,可以包括以下两种方式:
[0086] 方式一:如果该后端服务器处理第一请求消息超时,降低该后端服务器当前的权重。
[0087] 通常,后端服务器的权重的数值越大,表示后端服务器的处理能力越强。
[0088] 一种实现方式中,如果负载均衡服务器判定某一后端服务器处理请求消息超时,则该后端服务器的处理能力降低,负载均衡服务器可以根据该后端服务器处理请求消息超时的次数,降低该后端服务器当前的权重。
[0089] 示例性的,如果某一后端服务器第一次处理请求消息超时,则负载均衡服务器可以将该后端服务器当前的权重减少1;如果该后端服务器第二次处理请求消息超时,则负载均衡服务器可以将该后端服务器当前的权重减少2;如果该后端服务器第三次处理请求消息超时,则负载均衡服务器可以将该后端服务器当前的权重减少3,以此类推,负载均衡服务器可以根据该后端服务器处理请求消息超时的次数,减少该后端服务器当前的权重,该后端服务器减少后的权重能够表示该后端服务器当前的处理能力。
[0090] 另一种实现方式中,如果负载均衡服务器判定某一后端服务器处理请求消息超时,则可以将该后端服务器当前的权重与第一预设数值的差值,作为该后端服务器更新后的权重。
[0091] 其中,第一预设数值可以由技术人员根据经验设置,例如,第一预设数值可以为10,但并不限于此。
[0092] 如果负载均衡服务器判定该后端服务器处理第一请求消息超时,表示该后端服务器处理能力降低,负载均衡服务器可以重新确定该后端服务器当前的处理能力,即,负载均衡服务器可以计算该后端服务器当前的权重与第一预设数值的差值,将计算得到的差值作为该后端服务器更新后的权重,该后端服务器更新后的权重,能够表示该后端服务器当前的处理能力。
[0093] 示例性的,第一预设数值可以为10,如果某一后端服务器当前的权重为60,且负载均衡服务器判定该后端服务器当前处理请求消息超时,则负载均衡服务器可以计算该后端服务器当前的权重(即60)与第一预设数值(即10)的差值(即50),并将50作为该后端服务器更新后的权重。
[0094] 基于上述处理,如果负载均衡服务器判定某一后端服务器当前处理请求消息超时,表示该后端服务器的处理能力降低,负载均衡服务器可以降低该后端服务器当前的权重,即,重新确定该后端服务器当前的处理能力,进而,根据各后端服务器当前的处理能力,将接收到的请求消息转发至各后端服务器进行处理,能够避免后端服务器过载,在一定程度上避免网络业务中断。
[0095] 方式二,可以包括以下步骤:
[0096] 步骤一:如果该后端服务器处理第一请求消息未超时,提高该后端服务器当前的权重。
[0097] 如果该后端服务器处理第一请求消息未超时,表示该后端服务器的处理能力良好,可以处理较多的请求消息,则负载均衡服务器可以提高该后端服务器的权重。
[0098] 一种实现方式中,负载均衡服务器可以将该后端服务器当前的权重与第二预设数值的和值,作为该后端服务器更新后的权重。
[0099] 其中,第二预设数值可以由技术人员根据经验设置,例如,第二预设数值可以为1,但并不限于此。
[0100] 如果负载均衡服务器判定该后端服务器处理第一请求消息未超时,负载均衡服务器可以计算该后端服务器当前的权重与第二预设数值的和值,将计算得到的和值作为该后端服务器更新后的权重,该后端服务器更新后的权重能够表示该后端服务器当前的处理能力。
[0101] 一种实现方式中,第二预设数值可以为1,如果某一后端服务器当前的权重为50,且负载均衡服务器判定该后端服务器当前处理请求消息未超时,则负载均衡服务器可以计算该后端服务器当前的权重(即50)与第二预设数值(即1)的和值(即51),并将51作为该后端服务器更新后的权重。
[0102] 基于上述处理,如果负载均衡服务器判定某一后端服务器当前处理请求消息未超时,表示该后端服务器的处理能力良好,负载均衡服务器可以提高该后端服务器当前的权重,即,重新确定该后端服务器当前的处理能力,进而,根据各后端服务器当前的处理能力,将接收到的请求消息转发至各后端服务器进行处理,能够避免后端服务器过载,在一定程度上避免网络业务中断。
[0103] 步骤二:判断该后端服务器提高后的权重是否大于第一权重阈值,如果该后端服务器提高后的权重大于第一权重阈值,执行步骤三。
[0104] 其中,第一权重阈值可以由技术人员根据经验设置,例如,第一权重阈值可以为999,但并不限于此。
[0105] 在负载均衡服务器提高某一后端服务器当前的权重之后,负载均衡服务器可以进一步判断该后端服务器提高后的权重是否大于第一权重阈值,以根据判定结果进行相应的处理。
[0106] 步骤三:如果该后端服务器提高后的权重大于第一权重阈值,则根据预设归一化算法和各后端服务器当前的权重,重置该后端服务器的权重。
[0107] 其中,该后端服务器重置后的权重属于预设权重范围。预设权重范围可以根据各后端服务器的初始权重确定,但并不限于此。
[0108] 一种实现方式中,预设归一化算法可以为预设公式,则负载均衡服务器可以根据预设公式重置该后端服务器的权重,该后端服务器重置后的权重属于预设权重范围。
[0109] 其中,预设公式为:
[0110]
[0111] A表示预设系数,W表示该后端服务器重置后的权重,P表示该后端服务器重置前的权重,Sum表示各后端服务器当前的权重的和值。
[0112] 预设系数和预设权重范围可以根据各后端服务器的初始权重进行确定。
[0113] 示例性的,如果各后端服务器的初始权重属于[1,100]范围,则预设系数可以为100,预设权重范围可以为[1,100];如果各后端服务器的初始权重属于[1,200]范围,则预设系数可以为200,预设权重范围可以为[1,200],但并不限于此。
[0114] 如果负载均衡服务器判定该后端服务器提高后的权重大于第一权重阈值,为了防止该后端服务器的权重无限增大,则可以根据预设公式重置该后端服务器的权重。
[0115] 一种实现方式中,如果第二预设数值为1,第一权重阈值为999,预设系数为100。某一后端服务器(可以称为第一后端服务器)当前的权重为999,且负载均衡服务器判定第一后端服务器当前处理请求消息未超时,则负载均衡服务器可以计算第一后端服务器当前的权重(即999)与第二预设数值(即1)的和值(即1000),并将1000作为第一后端服务器更新后的权重。
[0116] 如果当前能够处理请求消息的后端服务器的数目为3,第一后端服务器更新后的权重为1000,另外2个后端服务器当前的权重分别为:400,600。
[0117] 此时,负载均衡服务器判定第一后端服务器更新后的权重(即1000),大于第一权重阈值(即999),则负载均衡服务器可以根据预设公式重置第一后端服务器的权重。
[0118] 负载均衡服务器可以计算当前能够处理请求消息的后端服务器当前的权重的和值,即,计算1000、400与600的和值(即2000),则Sum的值为2000。
[0119] 进而,根据预设系数A的值(即100)、第一后端服务器重置前的权重P的值(即1000),以及Sum的值(即2000)和公式(1),得到W=50。将计算得到W的值(即50),作为第一后端服务器重置后的权重。
[0120] 基于上述处理,如果某一后端服务器的权重增加至大于第一权重阈值,负载均衡服务器可以根据预设公式重置该后端服务器的权重,能够防止该后端服务器的权重无限增大,避免将过多的请求消息转发至该后端服务器进行处理,进而,能够避免该后端服务器过载。
[0121] S103:当接收到终端发送的第二请求消息时,根据各后端服务器更新后的权重,将第二请求消息转发至各后端服务器进行处理。
[0122] 其中,第二请求消息为根据处理第一请求消息的过程,对各后端服务器的权重进行更新之后,负载均衡服务器接收到的请求消息。
[0123] 在发明实施例中,各后端服务器更新后的权重能够表示各后端服务器当前的处理能力,当负载均衡服务器接收到终端发送的第二请求消息时,可以根据各后端服务器更新后的权重,即,根据各后端服务器当前的处理能力,将接收到的第二请求消息转发至各后端服务器进行处理。
[0124] 基于上述处理,如果某一后端服务器当前处理请求消息超时,表示该后端服务器的处理能力降低,负载均衡服务器可以更新该后端服务器的权重,该后端服务器更新后的权重,能够表示该后端服务器当前的处理能力,负载均衡服务器可以根据各后端服务器当前的处理能力,将接收到的请求消息转发至各后端服务器进行处理,能够避免后端服务器过载,进而,在一定程度上避免网络业务的中断。
[0125] 另外,负载均衡服务器还可以在某一后端服务器处理请求消息超时之后,重新确定该后端服务器当前的处理能力,以根据该后端服务器当前的处理能力进行相应处理。
[0126] 相应的,该方法还可以包括以下步骤:
[0127] 步骤一:当确定该后端服务器无法正常处理请求消息时,拒绝向该后端服务器转发接收到的请求消息。
[0128] 一种实现方式中,负载均衡服务器可以检测该后端服务器处理请求消息连续超时的次数,以确定该后端服务器当前的处理能力。
[0129] 如果该后端服务器处理某一请求消息超时,则负载均衡服务器可以判断该后端服务器处理请求消息连续超时的次数是否大于预设次数,如果负载均衡服务器判定该后端服务器处理请求消息连续超时的次数,大于预设次数,则表示该后端服务器当前无法正常处理请求消息。
[0130] 其中,预设次数可以由技术人员根据经验设置,例如,预设次数可以为3,但并不限于此。
[0131] 示例性的,预设次数可以为3,如果某一后端服务器处理请求消息超时,且负载均衡服务器判定该后端服务器处理请求消息连续超时的次数为4,大于预设次数(即3),则表示该后端服务器当前无法正常处理请求消息。
[0132] 另一种实现方式中,负载均衡服务器可以根据该后端服务器当前的权重,确定该后端服务器当前的处理能力。
[0133] 相应的,如果该后端服务器处理某一请求消息超时,则负载均衡服务器可以判断该后端服务器当前的权重是否小于第二权重阈值,如果该后端服务器当前的权重小于第二权重阈值,则表示该后端服务器当前无法正常处理请求消息。
[0134] 其中,第二权重阈值可以由技术人员根据经验设置,例如,第二权重阈值可以为1,但并不限于此。
[0135] 示例性的,第二权重阈值可以为1,该后端服务器当前的权重为0,如果该后端服务器处理请求消息超时,且负载均衡服务器判定该后端服务器当前的权重,小于第二权重阈值(即1),则表示该后端服务器当前无法正常处理请求消息。
[0136] 在负载均衡服务器确定该后端服务器无法正常处理请求消息之后,负载均衡服务器可以将该后端服务器移出服务器组一段时间,等待该后端服务器处理能力恢复。
[0137] 其中,服务器组可以由当前能够处理请求消息的后端服务器组成。
[0138] 相应的,负载均衡服务器将该后端服务器移出服务器组之后,则不会将接收到的请求消息转发至该后端服务器进行处理。
[0139] 步骤二:当达到第二预设时长时,如果该后端服务器当前的权重小于第二权重阈值,则将该后端服务器的权重设置为该后端服务器的初始权重,并允许向该后端服务器转发接收到的请求消息。
[0140] 其中,第二预设时长可以为第三预设时长,也可以为第四预设时长,第三预设时长与第四预设时长可以相同,也可以不相同。
[0141] 一种实现方式中,第二预设时长可以为第三预设时长,当达到第三预设时长时,如果该后端服务器当前的权重小于第二权重阈值,则负载均衡服务器可以将该后端服务器的权重设置为该后端服务器的初始权重,并允许向该后端服务器转发接收到的请求消息。
[0142] 其中,第三预设时长可以由技术人员根据经验设置,例如,第三预设时长可以为2分钟,但并不限于此。
[0143] 当负载均衡服务器将某一后端服务器移出服务器组所持续的时长,达到第三预设时长时,该后端服务器的处理能力基本恢复,如果该后端服务器当前的权重小于第二权重阈值,则负载均衡服务器可以将该后端服务器的权重设置为该后端服务器的初始权重,并再次将该后端服务器加入服务器组。
[0144] 进而,当负载均衡服务器再次接收到终端发送的请求消息时,可以将接收到的请求消息转发至该后端服务器进行处理,能够确保服务器组处理请求消息的效率。
[0145] 示例性的,第二权重阈值可以为1,第三预设时长可以为2分钟,如果某一后端服务器的初始权重为50,该后端服务器当前的权重为0,当负载均衡服务器将该后端服务器移出服务器组所持续的时长,达到2分钟时,该后端服务器的处理能力基本恢复,且负载均衡服务器判定该后端服务器当前的权重(即0),小于第二权重阈值(即1),则负载均衡服务器可以将该后端服务器的权重设置为50(即,该后端服务器的初始权重),并将该后端服务器再次加入服务器组。
[0146] 进而,当负载均衡服务器再次接收到终端发送的请求消息时,可以将接收到的请求消息转发至该后端服务器进行处理。
[0147] 步骤三:如果该后端服务器当前的权重不小于第二权重阈值,则允许向该后端服务器转发接收到的请求消息。
[0148] 一种实现方式中,第二预设时长可以为第四预设时长,当负载均衡服务器将该后端服务器移出服务器组所持续的时长,达到第四预设时长时,该后端服务器的处理能力基本恢复。如果该后端服务器当前的权重大于或等于第二权重阈值,则负载均衡服务器可以将该后端服务器再次加入服务器组,后续,可以将接收到的请求消息转发至该后端服务器进行处理。
[0149] 其中,第四预设时长可以由技术人员根据经验设置,第四预设时长可以为3秒,但并不限于此。
[0150] 示例性的,第四预设时长可以为3秒,第二权重阈值可以为1,如果该后端服务器当前的权重为20,当负载均衡服务器将该后端服务器移出服务器组所持续的时长,达到3秒时,该后端服务器的处理能力基本恢复,且该后端服务器当前的权重(即20)大于第二权重阈值(即1),则负载均衡服务器可以将该后端服务器再次加入服务器组。
[0151] 进而,当负载均衡服务器再次接收到终端发送的请求消息时,可以将接收到的请求消息转发至该后端服务器进行处理。
[0152] 基于上述处理,当负载均衡服务器确定某一后端服务器无法正常处理请求消息时,负载均衡服务器可以将该后端服务器移出服务器组一段时间,等待该后端服务器处理能力恢复,当达到第二预设时长时,该后端服务器的处理能力基本恢复,负载均衡服务器可以再次将该后端服务器加入服务器组,后续,可以将接收到的请求消息转发至该后端服务器进行处理,进而,能够确保服务器组处理请求消息的效率。
[0153] 参见图2,图2为本发明实施例提供的一种请求消息处理方法示例的流程图,可以包括以下步骤:
[0154] S201:获取各后端服务器当前的权重。
[0155] 其中,各后端服务器当前的权重可以为各后端服务器的初始权重,也可以为上一次更新后的权重。
[0156] S202:针对每一后端服务器,当接收到该后端服务器发送的第一提醒消息时,判断该后端服务器处理第一提醒消息对应的第一请求消息是否超时,如果该后端服务器处理第一请求消息超时,执行步骤S203,如果该后端服务器处理第一请求消息未超时,执行步骤S204。
[0157] 其中,第一提醒消息用于使负载均衡服务器确定该后端服务器已完成第一请求消息的处理。
[0158] S203:将该后端服务器当前的权重与第一预设数值的差值,作为该后端服务器更新后的权重。
[0159] S204:将该后端服务器当前的权重与第二预设数值的和值,作为该后端服务器更新后的权重。
[0160] S205:判断该后端服务器更新后的权重是否大于第一权重阈值,如果该后端服务器更新后的权重大于第一权重阈值,执行步骤S206。
[0161] S206:根据预设公式重置该后端服务器的权重。
[0162] 其中,预设公式为:
[0163]
[0164] A表示预设系数,W表示该后端服务器重置后的权重,P表示该后端服务器重置前的权重,Sum表示各后端服务器当前的权重的和值,该后端服务器重置后的权重属于预设权重范围。
[0165] S207:判断该后端服务器更新后的权重是否小于第二权重阈值,如果该后端服务器更新后的权重小于第二权重阈值,执行步骤S208。
[0166] S208:拒绝向该后端服务器转发接收到的请求消息。
[0167] S209:当达到第二预设时长时,将该后端服务器的权重设置为该后端服务器的初始权重,并允许向该后端服务器转发接收到的请求消息。
[0168] S2010:当接收到终端发送的第二请求消息时,根据各后端服务器当前的权重,将第二请求消息转发至各后端服务器进行处理。
[0169] 基于上述处理,如果某一后端服务器当前处理请求消息超时,表示该后端服务器的处理能力降低,负载均衡服务器可以更新该后端服务器的权重,该后端服务器更新后的权重,能够表示该后端服务器当前的处理能力,负载均衡服务器可以根据各后端服务器当前的处理能力,将接收到的请求消息转发至各后端服务器进行处理,能够避免后端服务器过载,进而,在一定程度上避免网络业务的中断。
[0170] 参见图3,图3为本发明实施例提供的一种请求消息处理系统的架构图。
[0171] 其中,负载均衡服务器可以接收终端发送的请求消息,在接收到终端发送的请求消息后,获取各后端服务器的地址、各后端服务器当前的权重,并根据各后端服务器当前的权重,将接收到的请求消息转发至各后端服务器进行处理。
[0172] 各后端服务器当前的权重可以为该后端服务器的初始权重,也可以为上一次更新后的权重。
[0173] 服务器组可以由当前能够处理请求消息的后端服务器组成,该系统中,服务器组包括:后端服务器1、后端服务器2、后端服务器3和后端服务器4。各后端服务器均可以处理负载均衡服务器转发的请求消息。
[0174] 在处理请求消息结束后,后端服务器还可以向负载均衡服务器发送请求消息对应的提醒消息,以通告负载均衡服务器该请求消息处理结束。
[0175] 相应的,负载均衡服务器可以根据后端服务器发送的提醒消息,对后端服务器的权重进行更新,以使各后端服务器当前的权重能够体现各后端服务器当前的处理能力。
[0176] 参见图4,基于同一发明构思,与本发明上述实施例提供的请求消息处理方法相对应,本发明实施例还提供了一种请求消息处理装置,所述装置应用于负载均衡设备,包括:
[0177] 判断模块401,用于针对各后端服务器中的每一后端服务器,当接收到该后端服务器发送的第一提醒消息时,判断该后端服务器处理所述第一提醒消息对应的第一请求消息是否超时,其中,所述第一提醒消息用于使所述负载均衡设备确定该后端服务器已完成所述第一请求消息的处理;
[0178] 更新模块402,用于根据判定结果,对该后端服务器当前的权重进行更新,其中,一个后端服务器的权重用于表示该后端服务器当前处理请求消息的能力;
[0179] 转发模块403,用于当接收到终端发送的第二请求消息时,根据所述各后端服务器更新后的权重,将所述第二请求消息转发至所述各后端服务器进行处理。
[0180] 可选的,所述判断模块401,具体用于计算转发所述第一请求消息的时刻,与接收到所述第一提醒消息的时刻之间的时长;
[0181] 如果计算得到的时长大于第一预设时长,则判定该后端服务器处理所述第一请求消息超时;
[0182] 如果计算得到的时长不大于所述第一预设时长,则判定该后端服务器处理所述第一请求消息未超时。
[0183] 可选的,所述更新模块402,包括:
[0184] 第一处理子模块,用于如果该后端服务器处理所述第一请求消息超时,降低该后端服务器当前的权重;
[0185] 第二处理子模块,用于如果该后端服务器处理所述第一请求消息未超时,提高该后端服务器当前的权重。
[0186] 可选的,所述第二处理子模块,还用于判断该后端服务器提高后的权重是否大于第一权重阈值;
[0187] 如果该后端服务器提高后的权重大于所述第一权重阈值,则根据预设归一化算法和各后端服务器当前的权重,重置该后端服务器的权重,其中,该后端服务器重置后的权重属于预设权重范围。
[0188] 可选的,所述装置还包括:
[0189] 第一处理模块,用于当确定该后端服务器无法正常处理请求消息时,拒绝向该后端服务器转发接收到的请求消息。
[0190] 可选的,所述第一处理模块还用于当达到第二预设时长时,如果该后端服务器当前的权重小于第二权重阈值,则将该后端服务器的权重设置为该后端服务器的初始权重,并允许向该后端服务器转发接收到的请求消息;
[0191] 如果该后端服务器当前的权重不小于所述第二权重阈值,则允许向该后端服务器转发接收到的请求消息。
[0192] 基于上述处理,如果某一后端服务器当前处理请求消息超时,表示该后端服务器的处理能力降低,负载均衡服务器可以更新该后端服务器的权重,该后端服务器更新后的权重,能够表示该后端服务器当前的处理能力,负载均衡服务器可以根据各后端服务器当前的处理能力,将接收到的请求消息转发至各后端服务器进行处理,能够避免后端服务器过载,进而,在一定程度上避免网络业务的中断。
[0193] 基于同一发明构思,与本发明上述实施例提供的请求消息处理方法相对应,本发明实施例还提供了一种负载均衡设备,如图5所示,包括处理器501、通信接口502、存储器503和通信总线504,其中,处理器501,通信接口502,存储器503通过通信总线504完成相互间的通信,
[0194] 存储器503,用于存放计算机程序;
[0195] 处理器501,用于执行存储器503上所存放的程序时,实现如下步骤:
[0196] 针对各后端服务器中的每一后端服务器,当接收到该后端服务器发送的第一提醒消息时,判断该后端服务器处理所述第一提醒消息对应的第一请求消息是否超时,其中,所述第一提醒消息用于使所述负载均衡设备确定该后端服务器已完成所述第一请求消息的处理;
[0197] 根据判定结果,对该后端服务器当前的权重进行更新,其中,一个后端服务器的权重用于表示该后端服务器当前处理请求消息的能力;
[0198] 当接收到终端发送的第二请求消息时,根据所述各后端服务器更新后的权重,将所述第二请求消息转发至所述各后端服务器进行处理。
[0199] 上述负载均衡设备提到的通信总线可以是外设部件互连标准(Peripheral Component Interconnect,PCI)总线或扩展工业标准结构(Extended Industry Standard Architecture,EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
[0200] 通信接口用于上述负载均衡设备与其他设备之间的通信。
[0201] 存储器可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
[0202] 上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital Signal Processing,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
[0203] 本发明实施例提供的负载均衡设备,在某一后端服务器当前处理请求消息超时时,表示该后端服务器的处理能力降低,可以更新该后端服务器的权重,该后端服务器更新后的权重,能够表示该后端服务器当前的处理能力,根据各后端服务器当前的处理能力,将接收到的请求消息转发至各后端服务器进行处理,能够避免后端服务器过载,进而,在一定程度上避免网络业务的中断。
[0204] 在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述实施例中任一请求消息处理方法的步骤。
[0205] 具体的,上述方法包括:
[0206] 针对各后端服务器中的每一后端服务器,当接收到该后端服务器发送的第一提醒消息时,判断该后端服务器处理所述第一提醒消息对应的第一请求消息是否超时,其中,所述第一提醒消息用于使所述负载均衡设备确定该后端服务器已完成所述第一请求消息的处理;
[0207] 根据判定结果,对该后端服务器当前的权重进行更新,其中,一个后端服务器的权重用于表示该后端服务器当前处理请求消息的能力;
[0208] 当接收到终端发送的第二请求消息时,根据所述各后端服务器更新后的权重,将所述第二请求消息转发至所述各后端服务器进行处理。
[0209] 需要说明的是,上述请求消息处理方法的其他实现方式与前述方法实施例部分相同,这里不再赘述。
[0210] 通过运行本发明实施例提供的计算机可读存储介质中存储的指令,在某一后端服务器当前处理请求消息超时时,表示该后端服务器的处理能力降低,可以更新该后端服务器的权重,该后端服务器更新后的权重,能够表示该后端服务器当前的处理能力,根据各后端服务器当前的处理能力,将接收到的请求消息转发至各后端服务器进行处理,能够避免后端服务器过载,进而,在一定程度上避免网络业务的中断。
[0211] 在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一请求消息处理方法。
[0212] 具体的,上述方法包括:
[0213] 针对各后端服务器中的每一后端服务器,当接收到该后端服务器发送的第一提醒消息时,判断该后端服务器处理所述第一提醒消息对应的第一请求消息是否超时,其中,所述第一提醒消息用于使所述负载均衡设备确定该后端服务器已完成所述第一请求消息的处理;
[0214] 根据判定结果,对该后端服务器当前的权重进行更新,其中,一个后端服务器的权重用于表示该后端服务器当前处理请求消息的能力;
[0215] 当接收到终端发送的第二请求消息时,根据所述各后端服务器更新后的权重,将所述第二请求消息转发至所述各后端服务器进行处理。
[0216] 需要说明的是,上述请求消息处理方法的其他实现方式与前述方法实施例部分相同,这里不再赘述。
[0217] 通过运行本发明实施例提供的计算机程序产品,在某一后端服务器当前处理请求消息超时时,表示该后端服务器的处理能力降低,可以更新该后端服务器的权重,该后端服务器更新后的权重,能够表示该后端服务器当前的处理能力,根据各后端服务器当前的处理能力,将接收到的请求消息转发至各后端服务器进行处理,能够避免后端服务器过载,进而,在一定程度上避免网络业务的中断。
[0218] 需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0219] 本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、负载均衡设备、计算机可读存储介质和计算机程序产品实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
[0220] 以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。