一种负载均衡系统、方法、装置及负载均衡设备与流程

文档序号:15846008发布日期:2018-11-07 09:02阅读:126来源:国知局
一种负载均衡系统、方法、装置及负载均衡设备与流程

本发明涉及计算机网络技术领域,特别是涉及一种负载均衡系统、方法、装置及负载均衡设备。

背景技术

随着互联网技术的发展,互联网公司能够为用户提供各种各样的业务服务。其中,有些业务是有状态的。当用户使用有状态的业务时,需要将同一用户的针对该业务的多次请求通过负载均衡系统转发至同一个后端的真实服务器(rs,realserver),以实现有状态的业务的“一致性”。例如:支付业务就是有状态的业务,当用户使用支付业务时,需要将同一用户的多次请求转发至同一个后端rs,以便于维护用户在使用支付业务时的使用状态。

然而,在现有的包含4层/7层负载均衡设备的负载均衡系统中,当负载均衡设备前端的交换机接收到同一用户针对某一有状态业务的多次请求,且各次请求的用于计算哈希值的序列不同,而交换机不支持一致性哈希,即交换机无法基于哈希计算将同一用户的序列不同的多次请求发送至同一个负载均衡设备时,那么,即使一个负载均衡设备能够实现将同一用户的多次请求转发至同一个后端rs,负载均衡系统也无法保证将同一用户针对某一有状态业务的所有请求都转发至同一个后端rs,从而无法实现上述“一致性”。

针对上述问题,现有的方法包括:对于同一用户针对某一有状态业务的多次请求,合理地选择各次请求的用于计算哈希值的序列,例如:将各次请求中包含的相同信息作为用于计算哈希值的序列,例如,该相同信息为各次请求中的五元组信息中的源ip地址。使交换机根据各次请求的序列,通过哈希计算得到相同的哈希值,从而将同一用户的多次请求发送至同一个负载均衡设备。

然而,发明人在实现本发明的过程中发现,现有技术至少存在如下问题:现有技术中,交换机仅根据上述有状态业务的各次请求中包含的相同信息进行哈希计算,进而为各次请求确定对应的负载均衡设备。这样交换机会将包含了该相同信息的所有请求都发送至同一个负载均衡设备,该所有请求中除了包含上述有状态业务的各次请求之外,还有可能包含其他请求。例如:仅用源ip地址计算哈希值,如果很多个用户使用该源ip地址,用这种方法计算哈希值会将所有使用该源ip地址的用户的请求发送至同一个负载均衡设备中,这种情况下影响了整个负载均衡系统的负载均衡功能的实现。



技术实现要素:

本发明实施例的目的在于提供一种负载均衡系统、方法、装置及负载均衡设备,以在减小对负载均衡系统实现负载均衡功能的影响的前提下,将同一用户针对有状态业务的请求转发至同一个rs。

为达到上述目的,第一方面,本发明实施提供了一种负载均衡系统,包括:交换机、负载均衡设备和存储设备;所述系统中,

所述交换机,用于接收目标客户端发送的包含目标客户端标识的目标请求;确定用于转发所述目标请求的负载均衡设备;将所述目标请求发送至所确定的负载均衡设备;

所述负载均衡设备,用于接收所述交换机发送的所述目标请求;向所述存储设备发送包含所述目标客户端标识的查询请求;接收所述存储设备返回的查询响应;若所述查询响应中包含所述目标客户端对应的真实服务器rs的标识,则将所述目标请求发送至所述目标客户端对应的rs;若所述查询响应中不包含所述目标客户端对应的rs的标识,则按预设算法计算确定所述目标客户端对应的rs,将所述目标请求发送至所述目标客户端对应的rs,并将所述目标客户端的客户端标识与rs的标识之间的对应关系发送至存储设备进行存储;

所述存储设备,用于存储所述负载均衡设备发送的客户端标识与rs的标识之间的对应关系;并接收所述负载均衡设备发送的所述查询请求;从已存储的客户端标识与rs的标识之间的对应关系中,查询所述目标客户端对应的rs;根据是否查询到,生成包含所述目标客户端对应的rs的标识的查询响应或不包含所述目标客户端对应的rs标识的查询响应发送至所述负载均衡设备。

可选地,所述存储设备为预设存储设备集群中的任一存储设备;

所述存储设备,进一步在存储所述负载均衡设备发送的客户端标识与rs的标识之间的对应关系后,将该对应关系发送至所述预设存储设备集群中的其他各个存储设备进行存储。

可选地,所述存储设备中已存储的客户端标识与rs的标识之间的对应关系中,还包含每个客户端的计时起始时刻;所述每个客户端的计时起始时刻的初始值为所述负载均衡设备发送该客户端的客户端标识与rs的标识之间的对应关系的时刻;

所述存储设备,进一步针对所述每个客户端,根据所述计时起始时刻,实时判断是否达到预设的第一超时时长,如果是,则将该客户端的客户端标识与rs的标识之间的对应关系删除。

可选地,所述存储设备,进一步在查询到所述目标客户端对应的rs后,将目标客户端的计时起始时刻更新为本次查询的查询时刻;并将更新后的计时起始时刻发送至所述预设存储设备集群中的其他各个存储设备进行更新。

可选地,所述负载均衡设备配置有本地存储器;

所述负载均衡设备,进一步在向所述存储设备发送包含所述目标客户端标识的查询请求之前,在所述本地存储器中已存储的客户端标识与rs的标识之间的对应关系中,查询所述目标客户端对应的rs;如果查询到,则将所述目标请求发送至所述目标客户端对应的rs;如果未查询到,则执行所述向所述存储设备发送包含所述目标客户端标识的查询请求的步骤;

所述负载均衡设备,进一步在按预设算法计算确定所述目标客户端对应的rs之后,将所述目标客户端的客户端标识与rs的标识之间的对应关系存储至所述本地存储器。

可选地,所述负载均衡设备的本地存储器中已存储的客户端标识与rs的标识之间的对应关系中,还包含每个客户端的计时起始时刻;所述每个客户端的计时起始时刻的初始值为向所述存储设备发送该客户端的客户端标识与rs的标识之间的对应关系的时刻;

所述负载均衡设备,进一步针对所述每个客户端,根据所述计时起始时刻,实时判断是否达到预设的第二超时时长,如果是,则将所述本地存储器中该客户端的客户端标识与rs的标识之间的对应关系删除。

可选地,所述负载均衡设备,进一步在查询到所述目标客户端对应的rs后,将所述目标客户端的计时起始时刻更新为本次查询的查询时刻。

第二方面,本发明实施例提供了一种负载均衡方法,应用于负载均衡系统中的负载均衡设备,所述负载均衡系统包括:交换机、负载均衡设备和存储设备,所述方法包括:

接收所述交换机发送的目标请求;其中,所述目标请求是目标客户端预先向所述交换机发送的包含目标客户端标识的请求;

向所述存储设备发送包含所述目标客户端标识的查询请求,以使所述存储设备从已存储的客户端标识与rs的标识之间的对应关系中,查询所述目标客户端对应的rs,并根据是否查询到,生成包含所述目标客户端对应的rs的标识的查询响应或不包含所述目标客户端对应的rs标识的查询响应发送至所述负载均衡设备;

接收所述存储设备返回的所述查询响应;

若所述查询响应中包含所述目标客户端对应的rs的标识,则将所述目标请求发送至所述目标客户端对应的rs;

若所述查询响应中不包含所述目标客户端对应的rs的标识,则按预设算法计算确定所述目标客户端对应的rs,将所述目标请求发送至所述目标客户端对应的rs,并将所述目标客户端的客户端标识与rs的标识之间的对应关系发送至存储设备进行存储。

可选地,所述负载均衡设备配置有本地存储器;在所述向所述存储设备发送包含所述目标客户端标识的查询请求的步骤之前,所述方法还包括:

在所述本地存储器中已存储的客户端标识与rs的标识之间的对应关系中,查询所述目标客户端对应的rs;

如果查询到,则将所述目标请求发送至所述目标客户端对应的rs;如果未查询到,则执行所述向所述存储设备发送包含所述目标客户端标识的查询请求的步骤;

在所述按预设算法计算确定所述目标客户端对应的rs的步骤之后,所述方法还包括:

将所述目标客户端的客户端标识与rs的标识之间的对应关系存储至所述本地存储器。

可选地,所述负载均衡设备的本地存储器中已存储的客户端标识与rs的标识之间的对应关系中,还包含每个客户端的计时起始时刻;所述每个客户端的计时起始时刻的初始值为向所述存储设备发送该客户端的客户端标识与rs的标识之间的对应关系的时刻;

所述方法还包括:

针对所述每个客户端,根据所述计时起始时刻,实时判断是否达到预设的第二超时时长,如果是,则将所述本地存储器中该客户端的客户端标识与rs的标识之间的对应关系删除。

可选地,所述方法还包括:

在查询到所述目标客户端对应的rs后,将所述目标客户端的计时起始时刻更新为本次查询的查询时刻。

第三方面,本发明实施例提供了一种负载均衡装置,应用于负载均衡系统中的负载均衡设备,所述负载均衡系统包括:交换机、负载均衡设备和存储设备,所述装置包括:

第一接收模块,用于接收所述交换机发送的目标请求;其中,所述目标请求是目标客户端预先向所述交换机发送的包含目标客户端标识的请求;

第一发送模块,用于向所述存储设备发送包含所述目标客户端标识的查询请求,以使所述存储设备从已存储的客户端标识与rs的标识之间的对应关系中,查询所述目标客户端对应的rs,并根据是否查询到,生成包含所述目标客户端对应的rs的标识的查询响应或不包含所述目标客户端对应的rs标识的查询响应发送至所述负载均衡设备;

第二接收模块,用于接收所述存储设备返回的所述查询响应;若所述查询响应中包含所述目标客户端对应的rs的标识,则触发第二发送模块;若所述查询响应中不包含所述目标客户端对应的rs的标识,则触发第三发送模块;

第二发送模块,用于将所述目标请求发送至所述目标客户端对应的rs;

第三发送模块,用于按预设算法计算确定所述目标客户端对应的rs,将所述目标请求发送至所述目标客户端对应的rs,并将所述目标客户端的客户端标识与rs的标识之间的对应关系发送至存储设备进行存储。

可选地,所述负载均衡设备配置有本地存储器;所述装置还包括:

查询模块,用于在所述第一发送模块向所述存储设备发送包含所述目标客户端标识的查询请求之前,在所述本地存储器中已存储的客户端标识与rs的标识之间的对应关系中,查询所述目标客户端对应的rs;若查询到,则触发第四发送模块;若未查询到,则触发第一发送模块;

第四发送模块,用于将所述目标请求发送至所述目标客户端对应的rs;

所述装置还包括:

存储模块,用于在所述第三发送模块按预设算法计算确定所述目标客户端对应的rs之后,将所述目标客户端的客户端标识与rs的标识之间的对应关系存储至所述本地存储器。

可选地,所述负载均衡设备的本地存储器中已存储的客户端标识与rs的标识之间的对应关系中,还包含每个客户端的计时起始时刻;所述每个客户端的计时起始时刻的初始值为向所述存储设备发送该客户端的客户端标识与rs的标识之间的对应关系的时刻;

所述装置还包括:

判断模块,用于针对所述每个客户端,根据所述计时起始时刻,实时判断是否达到预设的第二超时时长,如果是,则将所述本地存储器中该客户端的客户端标识与rs的标识之间的对应关系删除。

可选地,所述装置还包括:

更新模块,用于在所述查询模块查询到所述目标客户端对应的rs后,将所述目标客户端的计时起始时刻更新为本次查询的查询时刻。

第四方面,本发明实施例提供了一种负载均衡设备,包括:处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;

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

处理器,用于执行存储器上所存放的程序时,实现如上第二方面所述的负载均衡方法步骤。

第五方面,本发明实施例提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行如上第二方面所述的负载均衡方法步骤。

第六方面,本发明实施例提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行如上第二方面所述的负载均衡方法步骤。

本发明实施例提供的负载均衡系统、方法、装置及负载均衡设备,负载均衡系统包括:交换机、负载均衡设备和存储设备;交换机用于将目标客户端的目标请求发送至负载均衡设备;负载均衡设备用于在接收目标请求后向存储设备发送查询请求,若查询响应包含目标客户端对应的rs标识,将目标请求发送至该rs;若不包含,按预设算法确定目标客户端对应的rs,将目标请求发送至该rs,将目标客户端标识与rs标识的对应关系发送至存储设备存储;存储设备用于在接收查询请求后查询目标客户端对应的rs;根据是否查询到,生成包含rs标识或不包含rs标识的查询响应发送至负载均衡设备。

本发明实施例中,在负载均衡系统中引入存储设备,其存储了负载均衡设备发送的客户端标识与rs标识的对应关系,这个对应关系是负载均衡设备未在存储设备上查询到客户端对应的rs时,通过预设算法确定出客户端对应的rs后,发送到存储设备中的。这样负载均衡设备能够在转发目标客户端的目标请求之前,先在存储设备中查询目标客户端对应的rs,再将目标请求发送至该rs,保证了同一用户针对有状态业务的请求转发至同一个rs。而且,本发明实施例中,交换机确定目标请求对应的负载均衡设备时,对目标请求中用于计算哈希值的序列并无限定,因而对负载均衡系统实现其负载均衡功能的影响不大。

另外,本发明实施例中,当负载均衡设备未在存储设备上查询到目标客户端对应的rs时,可以通过预设算法确定目标客户端对应的rs,并将目标客户端标识与rs标识的对应关系发送至存储设备进行存储,从而便于负载均衡设备针对目标客户端的后续请求,在存储设备上查询对应的rs,以实现将同一客户端针对有状态业务的请求转发至同一个rs。

当然,实施本发明的任一产品或方法必不一定需要同时达到以上所述的所有优点。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。

图1a为本发明实施例提供的负载均衡系统的一种结构示意图;

图1b为图1a所示实施例中各个设备之间的交互流程图;

图1c为本发明实施例提供的负载均衡系统的另一种结构示意图;

图2为本发明实施例提供的负载均衡方法的一种流程图;

图3为本发明实施例提供的负载均衡方法的另一种流程图;

图4为本发明实施例提供的负载均衡装置的一种结构图;

图5为本发明实施例提供的负载均衡装置的另一种结构图;

图6为本发明实施例提供的一种电子设备的结构图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。

为了将用户针对同一有状态业务的多次请求都发送至同一后端rs,本发明实施例提供了一种负载均衡系统。

如图1a所示,本发明实施例提供的负载均衡系统,包括:交换机101、负载均衡设备102和存储设备103,其中,

交换机101,用于接收目标客户端发送的包含目标客户端标识的目标请求;确定用于转发目标请求的负载均衡设备;将目标请求发送至所确定的负载均衡设备;其中目标客户端可以是图1a中的客户端a、客户端b或客户端c.

负载均衡设备102,用于接收交换机101发送的目标请求;向存储设备103发送包含目标客户端标识的查询请求;接收存储设备103返回的查询响应;若查询响应中包含目标客户端对应的真实服务器rs的标识,则将目标请求发送至目标客户端对应的rs;若查询响应中不包含目标客户端对应的rs的标识,则按预设算法计算确定目标客户端对应的rs,将目标请求发送至目标客户端对应的rs,并将目标客户端的客户端标识与rs的标识之间的对应关系发送至存储设备103进行存储;

存储设备103,用于存储负载均衡设备102发送的客户端标识与rs的标识之间的对应关系;并接收负载均衡设备102发送的查询请求;从已存储的客户端标识与rs的标识之间的对应关系中,查询目标客户端对应的rs;根据是否查询到,生成包含目标客户端对应的rs的标识的查询响应或不包含目标客户端对应的rs标识的查询响应发送至负载均衡设备102。

具体的,交换机101可以是外网交换机,外网交换机通常是运营商提供的交换机。目标请求可以是目标客户端向交换机101发送的针对同一有状态的业务的多个请求中的一个请求。

本实施例中,负载均衡设备被部署为集群模式,即负载均衡设备的数量至少为两个。当交换机101接收到目标请求后,可以对该目标请求进行路由分配,即由交换机101从负载均衡设备集群中确定出用于转发目标请求至后端rs的负载均衡设备102。在一种实现方式中,交换机101可以根据开放式最短路径优先(openshortestpathfirst,ospf)路由协议或等价路由(equal-costmultipathrouting,ecmp)算法确定出用于转发目标请求至后端rs的负载均衡设备102。可以理解,负载均衡设备102是负载均衡集群中的某一个负载均衡设备。当交换机101确定出负载交换设备102后,可以将目标请求发送至负载均衡设备102,进一步由负载均衡设备将目标请求转发至某一个后端rs。

本实施例中,负载均衡设备102可以是四层负载均衡设备或七层负载均衡设备。当负载均衡设备102接收交换机101发送的目标请求后,可以向存储设备发送包含目标客户端标识的查询请求,以查询目标客户端对应的rs。本实施例中,交换机101可以通过虚拟ip技术(virtualip)针对一个客户端,给某个负载均衡设备只发送该客户端的某一种业务的请求。具体的,可以为每个负载均衡设备分配一个vip(virtualip,虚拟ip)地址,交换机可以针对一个客户端,将该客户端的某一种业务的请求发送某个vip地址对应的负载均衡设备。在实际使用中,一个vip地址可以对应于多个负载均衡设备,即多个负载均衡设备可以具有同一个vip地址。也就是说,交换机可以将一个客户端的同一个业务的每个请求发送至具有同一vip地址的多个负载均衡设备中的一个负载均衡设备。这样,对于一个负载均设备来说,如果其接收到同一客户端的多个请求,那么该多个请求必然属于同一个业务,所以在查询请求中可以只添加目标客户端标识,而不必添加相应的业务标识。

上述预设算法可以是任一负载均衡设备用于计算确定目标客户端对应的rs的算法,例如:轮询算法。具体的,负载均衡设备将依次接收到的请求按顺序转发到各个rs。举例来说,负载均衡设备依次接收到请求1-请求6,负载均衡设备可以连接的rs为:rs1-rs3,则负载均衡设备将请求1-请求3依次分别转发至rs1-rs3,将请求4-请求6依次分别转发至rs1-rs3。

当负载均衡设备102计算确定出目标客户端对应的rs后,可以将目标客户端的客户端标识与计算确定出的rs的标识之间的对应关系发送至存储设备103进行存储,以便于负载均衡系统中的任一负载均衡设备接收到目标客户端针对上述有状态的业务的后续请求后,可以在存储设备103上查询目标客户端对应的rs。

当然,在负载均衡设备102按预设算法确定出的目标客户端对应的rs后,将目标请求发送至目标客户端对应的rs的步骤,与将目标客户端的客户端标识与rs的标识之间的对应关系发送至存储设备103进行存储的步骤之间并没有严格的执行顺序。

本发明实施例中,在负载均衡系统中引入存储设备,其存储了负载均衡设备发送的客户端标识与rs标识的对应关系,这个对应关系是负载均衡设备未在存储设备上查询到客户端对应的rs时,通过预设算法确定出客户端对应的rs后,发送到存储设备中的。这样,负载均衡设备能够在转发目标客户端的目标请求之前,先在存储设备中查询目标客户端对应的rs,再将目标请求发送至该rs,保证了同一用户针对有状态业务的请求转发至同一个rs。而且,本发明实施例中,交换机确定目标请求对应的负载均衡设备时,对目标请求中用于计算哈希值的序列并无限定,因而对负载均衡系统实现其负载均衡功能的影响不大。

另外,本发明实施例中,当负载均衡设备未在存储设备上查询到目标客户端对应的rs时,可以通过预设算法确定目标客户端对应的rs,将目标请求发送至该rs,并将目标客户端标识与rs标识的对应关系发送至存储设备进行存储,从而便于负载均衡设备针对目标客户端的后续请求,在存储设备上查询对应的rs,以实现将同一客户端针对有状态业务的请求转发至同一个rs。

另外,针对本发明所要解决的技术问题,本发明实施例并不需要对交换机进行改造,而是仅在负载均衡系统中增加存储设备即可,相比于对交换机进行改造来解决上述技术问题,本发明实施例的方案实现起来更为简便。

为了体现图1a所示实施例中各个设备之间的交互流程,如图1b所示,图1b为图1a所示实施例中各个设备之间的交互流程图,包括:

交换机101,接收目标客户端发送的包含目标客户端标识的目标请求;确定用于转发目标请求的负载均衡设备;将目标请求发送至所确定的负载均衡设备102;

负载均衡设备102,接收交换机101发送的目标请求;向存储设备103发送包含目标客户端标识的查询请求;

存储设备103,接收负载均衡设备102发送的查询请求;从已存储的客户端标识与rs的标识之间的对应关系中,查询目标客户端对应的rs;

若查询到,生成包含目标客户端对应的rs的标识的查询响应发送至负载均衡设备102,负载均衡设备102接收存储设备103返回的查询响应,将目标请求发送至目标客户端对应的rs;

若未查询到,生成不包含目标客户端对应的rs标识的查询响应发送至负载均衡设备102;

负载均衡设备102,接收存储设备103返回的查询响应;按预设算法计算确定目标客户端对应的rs,将目标请求发送至目标客户端对应的rs,并将目标客户端的客户端标识与rs的标识之间的对应关系发送至存储设备103进行存储;

存储设备103,存储负载均衡设备102发送的目标客户端的客户端标识与rs的标识之间的对应关系。

本发明实施例中,在负载均衡系统中引入存储设备,其存储了负载均衡设备发送的客户端标识与rs标识的对应关系,这个对应关系是负载均衡设备未在存储设备上查询到客户端对应的rs时,通过预设算法确定出客户端对应的rs后,发送到存储设备中的。这样负载均衡设备能够在转发目标客户端的目标请求之前,先在存储设备中查询目标客户端对应的rs,再将目标请求发送至该rs,保证了同一用户针对有状态业务的请求转发至同一个rs。而且,本发明实施例中,交换机确定目标请求对应的负载均衡设备时,对目标请求中用于计算哈希值的序列并无限定,因而对负载均衡系统实现其负载均衡功能的影响不大。

另外,本发明实施例中,当负载均衡设备未在存储设备上查询到目标客户端对应的rs时,可以通过预设算法确定目标客户端对应的rs,将目标请求发送至该rs,并将目标客户端标识与rs标识的对应关系发送至存储设备进行存储,从而便于负载均衡设备针对目标客户端的后续请求,在存储设备上查询对应的rs,以实现将同一客户端针对有状态业务的请求转发至同一个rs。

在图1a所示实施例的一种实现方式中,存储设备103可以为预设存储设备集群中的任一存储设备。参见图1c,图1c为本发明实施例提供的负载均衡系统的另一种结构示意图。

预设存储设备集群可以是分布式存储设备集群,可选地,该分布式存储设备集群可以是包含多个cache存储器的分布式cache存储器集群。例如,该分布式cache存储器集群可以是redis集群。可以理解,在分布式存储设备集群中,各存储设备可以实现同样的功能。具体在本实施例中,各个存储设备均可以响应某个负载均衡设备的查询请求,所以在各个存储设备上均可以存储全量的客户端标识与rs的标识的对应关系。

那么相应地,存储设备103,进一步可以在存储了负载均衡设备102发送的客户端标识与rs的标识之间的对应关系后,将该对应关系发送至预设存储设备集群中的其他各个存储设备进行存储,这样各个存储设备上都存储了全量的客户端标识与rs的标识的对应关系。

在一种具体实现方式中,预设存储设备集群中的各个存储设备中已存储的客户端标识与rs的标识之间的对应关系中,还可以包含每个客户端的计时起始时刻;每个客户端的计时起始时刻的初始值为负载均衡设备102发送该客户端的客户端标识与rs的标识之间的对应关系的时刻;

相应地,预设存储设备集群中的各个存储设备,进一步可以针对每个客户端,根据计时起始时刻,实时判断是否达到预设的第一超时时长,如果是,则将该客户端的客户端标识与rs的标识之间的对应关系删除。

具体的,由于预设存储设备集群中的各个存储设备的存储空间有限,为了节约各个存储设备的可用存储空间,各个存储设备可以针对每个客户端分别设定该客户端的计时起始时刻,并通过循环判断或每隔预设间隔判断的方式实时地判断该客户端的超时时长是否达到预设的第一超时时长,若达到则将该客户端的客户端标识与rs的标识之间的对应关系删除。

其中,每个客户端的超时时长为:从该客户端的计时起始时刻到当前时刻的时长。针对每个客户端,可以设定相同或不同的预设的第一超时时长,该预设的第一超时时长可以为较长的一段时间,以使转发该客户端针对某个状态业务的各个请求的各个负载均衡设备在预设的第一超时时长内,均可以在存储设备上查询到该客户端对应的rs,从而将各个请求转发至同一个rs。循环判断的周期为完成一次判断所需要的时长,例如循环判断的周期为0.1s,预设间隔可以根据需要设定,例如预设间隔设定为1s。当然,上述当前时刻是指:当前判断周期的起始时刻。

在上述具体实现方式中,存储设备103将负载均衡设备102发送的客户端标识与rs的标识之间的对应关系发送至预设存储设备集群中的其他各个存储设备的同时,还可以将每个客户端的计时起始时刻的初始值也发送至各个存储设备,以使每个存储设备针对每个客户端,都从相同的时刻开始对该客户端的超时时长进行计时。

在一种具体实现方式中,存储设备103,进一步可以在查询到目标客户端对应的rs后,将目标客户端的计时起始时刻更新为本次查询的查询时刻;并将更新后的计时起始时刻发送至预设存储设备集群中的其他各个存储设备进行更新。

例如,目标客户端的计时起始时刻的初始值为:14时20分10秒,存储设备103查询目标客户端对应的rs的查询时刻为:14时21分10秒,则存储设备103将目标客户端的计时起始时刻更新为14时21分10秒。

本实施例中,预设存储设备集群中的各存储设备上均存储了全量的客户端标识与rs的标识的对应关系,因而各个存储设备可以同步响应各个负载均衡设备发送的查询客户端对应的rs的查询请求,提高了查询效率。

为了保证预设存储设备集群中的各存储设备上均存储全量的客户端标识与rs的标识的对应关系,在一种实施例中,每个存储设备的对应关系发生改变后,例如:新增或删除等,都可以发送给存储设备集群中的各存储设备。

在图1a所示实施例的一种实现方式中,负载均衡设备102可以配置有本地存储器;

相应地,负载均衡设备102,进一步可以在向存储设备103发送包含目标客户端标识的查询请求之前,在本地存储器中已存储的客户端标识与rs的标识之间的对应关系中,查询目标客户端对应的rs;如果查询到,则将目标请求发送至目标客户端对应的rs;如果未查询到,则执行向存储设备103发送包含目标客户端标识的查询请求的步骤;

负载均衡设备103,进一步可以在按预设算法计算确定目标客户端对应的rs之后,将目标客户端的客户端标识与rs的标识之间的对应关系存储至本地存储器。

具体的,负载均衡设备102的本地存储器可以是cache存储器,其存储了负载均衡设备102按预设算法计算确定的各客户端对应的rs的标识与各客户端的客户端标识之间的对应关系。也就是说,当负载均衡设备102按预设算法计算确定出某个客户端对应的rs后,可以将该客户端的客户端标识与确定出的rs的标识之间的对应关系存储至本地存储器。当然,在负载均衡设备102按预设算法确定出的目标客户端对应的rs后,将目标请求发送至目标客户端对应的rs、将目标客户端的客户端标识与rs的标识之间的对应关系发送至存储设备103进行存储、将目标客户端的客户端标识与rs的标识之间的对应关系存储至本地存储器这三个步骤之间并没有严格的执行顺序。

在上述实现方式中,由于在负载均衡设备中配置了本地存储器,当负载均衡设备接收到某个客户端的请求后,可以先在本地存储器中查询该客户端对应的rs,因而可以降低负载均衡设备与存储设备之间的网络开销。而且,负载均衡设备在本地存储器中存储了某个客户端的客户端标识与rs标识的对应关系之后,可以便于在该负载均衡设备接收到该客户端的后续请求时,直接在本地存储器上查询该客户端对应的rs,以降低负载均衡设备与存储设备之间的网络开销。

在一种具体实现方式中,负载均衡设备102的本地存储器中已存储的客户端标识与rs的标识之间的对应关系中,还可以包含每个客户端的计时起始时刻;每个客户端的计时起始时刻的初始值为向存储设备103发送该客户端的客户端标识与rs的标识之间的对应关系的时刻;

相应地,负载均衡设备102,进一步可以针对每个客户端,根据计时起始时刻,实时判断是否达到预设的第二超时时长,如果是,则将本地存储器中该客户端的客户端标识与rs的标识之间的对应关系删除。

具体的,为了节约负载均衡设备102的本地存储器的存储空间,负载均衡设备102可以针对每个客户端分别设定该客户端的计时起始时刻,并通过循环判断或每隔预设间隔判断的方式实时地判断该客户端的超时时长是否达到预设的第二超时时长,若达到则将本地存储器中该客户端的客户端标识与rs的标识之间的对应关系删除。其中,每个客户端的超时时长为:从该客户端的计时起始时刻到当前时刻的时长。针对每个客户端,可以设定相同或不同的预设的第二超时时长。在本实施例中,由于负载均衡设备的本地存储器的存储空间通常要小于存储设备的存储空间,所以第二超时时长可以小于第一超时时长。循环判断的周期为完成一次判断所需要的时长,例如循环判断的周期为0.1s,预设间隔可以根据需要设定,例如预设间隔设定为1s。当然,上述当前时刻是指:当前判断周期的起始时刻。

在一种具体实现方式中,负载均衡设备102,进一步在本地存储器中查询到目标客户端对应的rs后,将目标客户端的计时起始时刻更新为本次查询的查询时刻。

在图1a所示实施例的任一实现方式中,负载均衡设备102与存储设备103之间的交互都可以通过内网交换机实现。内网交换机可以是局域网交换机。

本发明实施例中,在负载均衡系统中引入存储设备,其存储了负载均衡设备发送的客户端标识与rs标识的对应关系,这个对应关系是负载均衡设备未在存储设备上查询到客户端对应的rs时,通过预设算法确定出客户端对应的rs后,发送到存储设备中的。这样负载均衡设备能够在转发目标客户端的目标请求之前,先在存储设备中查询目标客户端对应的rs,再将目标请求发送至该rs,保证了同一用户针对有状态业务的请求转发至同一个rs。而且,本发明实施例中,交换机确定目标请求对应的负载均衡设备时,对目标请求中用于计算哈希值的序列并无限定,因而对负载均衡系统实现其负载均衡功能的影响不大。另外,本发明实施例中,当负载均衡设备未在存储设备上查询到目标客户端对应的rs时,可以通过预设算法确定目标客户端对应的rs,将目标请求发送至该rs,并将目标客户端标识与rs标识的对应关系发送至存储设备进行存储,从而便于负载均衡设备针对目标客户端的后续请求,在存储设备上查询对应的rs,以实现将同一客户端针对有状态业务的请求转发至同一个rs。

参见图2,图2为本发明实施例提供的负载均衡方法的一种流程图,该方法应用于负载均衡系统中的负载均衡设备,该负载均衡系统包括:交换机、负载均衡设备和存储设备,该方法包括:

s201,接收交换机发送的目标请求;其中,目标请求是目标客户端预先向交换机发送的包含目标客户端标识的请求。

本实施例中,交换机可以是不支持一致性哈希的外网交换机,外网交换机通常是运营商提供的交换机。目标请求可以是目标客户端向交换机发送的针对同一有状态的业务的多个请求中的一个请求。例如:目标客户端a针对有状态业务m1的多个请求为:a1,a2,a3,其中目标请求为a1。由于目标客户端是向后端服务器请求服务的一端,也可将目标客户端称为目标用户。

本实施例中,负载均衡设备被部署为集群模式,负载均衡设备可以是四层负载均衡设备或七层负载均衡设备。交换机接收到目标请求后,可从负载均衡设备集群中确定出用于转发该目标请求至后端rs的负载均衡设备,具体可以根据ospf/ecmp确定出用于转发该目标请求至后端rs的负载均衡设备。例如,交换机根据ecmp确定出用于转发目标请求a1至后端rs的负载均衡设备为:负载均衡设备x。

由于交换机不支持一致性哈希,当目标客户端针对同一有状态的业务的多个请求的用于计算哈希值的序列不同时,交换机针对多个请求计算的哈希值不同,则交换机会将哈希值不同的多个请求发送至不同的负载均衡设备。每个请求的用于计算哈希值的序列可以是该请求包含的五元组信息。结合上述例子,目标客户端a针对有状态业务m1的多个请求a1,a2,a3的五元组信息不同,则交换机将请求a1,a2,a3分别发送至负载均衡设备1,2,3。而同一客户端针对同一有状态业务的多个请求需要被发送至同一个后端rs,即使同一个负载均衡设备可以将同一客户端的多个请求都转发至同一个后端rs,由于同一客户端的同一有状态业务的多个请求被发送到不同的负载均衡设备,所以无法保证同一客户端的同一有状态业务的多个请求通过各个负载均衡设备都能到达同一个后端rs。

s202,向存储设备发送包含目标客户端标识的查询请求,以使存储设备从已存储的客户端标识与rs的标识之间的对应关系中,查询目标客户端对应的rs,并根据是否查询到,生成包含目标客户端对应的rs的标识的查询响应或不包含目标客户端对应的rs标识的查询响应发送至负载均衡设备。

本实施例中,存储设备可以为预设存储设备集群中的任一存储设备。预设存储设备集群可以是分布式存储设备集群,可选地,该分布式存储设备集群可以是包含多个cache存储器的分布式cache存储器集群。例如,该分布式cache存储器集群可以是redis集群。

存储设备上已存储的客户端标识与rs的标识之间的对应关系,是各负载均衡设备针对各客户端的各请求,在存储设备上未查询各客户端到对应的rs时,由各负载均衡设备确定出各客户端对应的rs后,向存储设备发送的各客户端标识与确定出的rs的标识之间的对应关系。在下文中将介绍:负载均衡设备具体可以按预设算法计算确定出各客户端对应的rs。

例如,负载均衡设备1接收到客户端a的请求a1,在存储设备上未查询到客户端a对应的rs,则按预设算法确定出客户端a对应的rs为rs1,则负载均衡设备1将客户端a与rs1的对应关系发送至存储设备。负载均衡设备2接收到客户端b的请求b1,在存储设备上未查询到客户端b对应的rs,则按预设算法确定出客户端b对应的rs为rs2,则负载均衡设备2将客户端b与rs2的对应关系发送至存储设备。

本实施例中,交换机可以通过虚拟ip技术(virtualip)将同一客户端的不同业务的请求发送至不同的负载均衡设备,即对于一个负载均设备来说,如果其接收到同一客户端的多个请求,那么该多个请求必然属于同一个业务,所以在查询请求中可以只添加目标客户端标识,而不必添加相应的业务标识。

s203,接收存储设备返回的查询响应。

s204,若查询响应中包含目标客户端对应的rs的标识,则将目标请求发送至目标客户端对应的rs。

s205,若查询响应中不包含目标客户端对应的rs的标识,则按预设算法计算确定目标客户端对应的rs,将目标请求发送至目标客户端对应的rs,并将目标客户端的客户端标识与rs的标识之间的对应关系发送至存储设备进行存储。

预设算法可以是任一负载均衡设备用于计算确定目标客户端对应的rs的算法。例如:轮询算法。

当负载均衡设备计算确定出目标客户端对应的rs后,可以将目标客户端的客户端标识与计算确定出的rs的标识之间的对应关系发送至存储设备进行存储,以便于负载均衡系统中的任一负载均衡设备接收到目标客户端针对上述有状态业务的后续请求后,可以在存储设备上查询目标客户端对应的rs。

在本步骤中,将目标请求发送至目标客户端对应的rs的步骤,与将目标客户端的客户端标识与rs的标识之间的对应关系发送至存储设备进行存储的步骤之间并没有严格的执行顺序。

在本实施例中,负载均衡设备与存储设备之间的交互都可以通过内网交换机实现。内网交换机可以是局域网交换机。具体的,负载均衡设备可以通过内网交换机向存储设备发送包含目标客户端标识的查询请求,以及负载均衡设备可以通过内网交换机接收存储设备返回的查询响应。

本发明实施例中,在负载均衡系统中引入存储设备,其存储了负载均衡设备发送的客户端标识与rs标识的对应关系,这个对应关系是负载均衡设备未在存储设备上查询到客户端对应的rs时,通过预设算法确定出客户端对应的rs后,发送到存储设备中的。这样负载均衡设备能够在转发目标客户端的目标请求之前,先在存储设备中查询目标客户端对应的rs,再将目标请求发送至该rs,保证了同一用户针对有状态业务的请求转发至同一个rs,而且,本发明实施例中,交换机确定目标请求对应的负载均衡设备时,对目标请求中用于计算哈希值的序列并无限定,因而对负载均衡系统实现其负载均衡功能的影响不大。另外,本发明实施例中,当负载均衡设备未在存储设备上查询到目标客户端对应的rs时,可以通过预设算法确定目标客户端对应的rs,将目标请求发送至该rs,并将目标客户端标识与rs标识的对应关系发送至存储设备进行存储,从而便于负载均衡设备针对目标客户端的后续请求,在存储设备上查询对应的rs,以实现将同一客户端针对有状态业务的请求转发至同一个rs。

图3为本发明实施例提供的负载均衡方法的另一种流程图,该方法应用于负载均衡系统中的负载均衡设备,该负载均衡系统包括:交换机、负载均衡设备和存储设备,该负载均衡设备配置有本地存储器,该方法包括:

s301,接收交换机发送的目标请求;其中,目标请求是目标客户端预先向交换机发送的包含目标客户端标识的请求。

本实施例中,步骤s301可以与图2所示实施例中的步骤s201完全相同。

s302,在本地存储器中已存储的客户端标识与rs的标识之间的对应关系中,查询目标客户端对应的rs,如果查询到,则转到步骤s303,如果未查询到,则转到步骤s304。

具体的,本地存储器可以是cache存储器,其已存储的客户端标识与rs的标识之间的对应关系,是各负载均衡设备针对各客户端的各请求,在存储设备上未查询各客户端到对应的rs时,由各负载均衡设备确定出各客户端对应的rs后,在各负载均衡设备的本地存储器中存储的各客户端标识与确定出的rs的标识之间的对应关系。在下文中将介绍:负载均衡设备具体可以按预设算法计算确定出各客户端对应的rs。

s303,将目标请求发送至目标客户端对应的rs。

本步骤中的rs为在负载均衡设备的本地存储器中查询到的目标客户端对应的rs。

s304,向存储设备发送包含目标客户端标识的查询请求,以使存储设备从已存储的客户端标识与rs的标识之间的对应关系中,查询目标客户端对应的rs,并根据是否查询到,生成包含目标客户端对应的rs的标识的查询响应或不包含目标客户端对应的rs标识的查询响应发送至负载均衡设备。

s305,接收存储设备返回的查询响应。

s306,若查询响应中包含目标客户端对应的rs的标识,则将目标请求发送至目标客户端对应的rs。

s307,若查询响应中不包含目标客户端对应的rs的标识,则按预设算法计算确定目标客户端对应的rs,将目标请求发送至目标客户端对应的rs,并将目标客户端的客户端标识与rs的标识之间的对应关系发送至存储设备进行存储。

本实施例中,步骤s304-s307可以与图2所示实施例中的步骤s202-s205完全相同。

s308,将目标客户端的客户端标识与rs的标识之间的对应关系存储至本地存储器。

本步骤中的rs为负载均衡设备计算确定出的目标客户端对应的rs。负载均衡设备将目标客户端的客户端标识与确定出的rs的标识之间的对应关系存储至本地存储器,可以便于该负载均衡设备针对目标客户端的后续请求,直接在本地存储器上查询目标客户端对应的rs,以降低负载均衡设备与存储设备之间的网络开销。

本实施例中,步骤s307中的将目标请求发送至目标客户端对应的rs、将目标客户端的客户端标识与rs的标识之间的对应关系发送至存储设备进行存储、以及步骤s308这三个步骤之间并没有严格的执行顺序。

本实施例中,负载均衡设备与存储设备之间的交互都可以通过内网交换机实现。具体的,负载均衡设备可以通过内网交换机向存储设备发送包含目标客户端标识的查询请求,以及负载均衡设备可以通过内网交换机接收存储设备返回的查询响应。

在图3所示实施例的一种具体实现方式中,负载均衡设备的本地存储器中已存储的客户端标识与rs的标识之间的对应关系中,还包含每个客户端的计时起始时刻;每个客户端的计时起始时刻的初始值为向存储设备发送该客户端的客户端标识与rs的标识之间的对应关系的时刻;

相应地,图3所示的负载均衡方法还可以包括:

针对每个客户端,根据计时起始时刻,实时判断是否达到预设的第二超时时长,如果是,则将本地存储器中该客户端的客户端标识与rs的标识之间的对应关系删除。

具体的,为了节约负载均衡设备的本地存储器的存储空间,负载均衡设备可以针对每个客户端分别设定该客户端的计时起始时刻,并通过循环判断或每隔预设间隔判断的方式实时地判断该客户端的超时时长是否达到预设的第二超时时长,若达到则将本地存储器中该客户端的客户端标识与rs的标识之间的对应关系删除。其中,每个客户端的超时时长为:从该客户端的计时起始时刻到当前时刻的时长。针对每个客户端,可以设定相同或不同的预设的第二超时时长。在本实施例中,第二超时时长可以小于第一超时时长。循环判断的周期为完成一次判断所需要的时长,例如循环判断的周期为0.1s,预设间隔可以根据需要设定,例如预设间隔设定为1s。当然,上述当前时刻是指:当前判断周期的起始时刻。

进一步地,图3所示的负载均衡方法还可以包括:负载均衡设备在查询到目标客户端对应的rs后,将目标客户端的计时起始时刻更新为本次查询的查询时刻。

本发明实施例提供的负载均衡方法,由于负载均衡设备在存储设备中查询目标客户端对应的rs之前,先在本地存储器中查询目标客户端对应的rs,因而可以降低负载均衡设备与存储设备之间的网络开销。另外,本发明实施例中,负载均衡设备通过预设算法确定目标客户端对应的rs之后,将目标客户端标识与rs标识的对应关系发送至本地存储器进行存储,从而便于负载均衡设备针对目标客户端的后续请求,在本地存储器上查询对应的rs,以降低负载均衡设备与存储设备之间的网络开销。

相应于图2所示方法实施例,本发明实施例还提供了一种负载均衡装置,如图4所示,图4为本发明实施例提供的负载均衡装置的一种结构图,该装置应用于负载均衡系统中的负载均衡设备,该负载均衡系统包括:交换机、负载均衡设备和存储设备,该装置包括:

第一接收模块401,用于接收交换机发送的目标请求;其中,目标请求是目标客户端预先向交换机发送的包含目标客户端标识的请求;

第一发送模块402,用于向存储设备发送包含目标客户端标识的查询请求,以使存储设备从已存储的客户端标识与rs的标识之间的对应关系中,查询目标客户端对应的rs,并根据是否查询到,生成包含目标客户端对应的rs的标识的查询响应或不包含目标客户端对应的rs标识的查询响应发送至负载均衡设备;

第二接收模块403,用于接收存储设备返回的查询响应;若查询响应中包含目标客户端对应的rs的标识,则触发第二发送模块404;若查询响应中不包含目标客户端对应的rs的标识,则触发第三发送模块405;

第二发送模块404,用于将目标请求发送至目标客户端对应的rs;

第三发送模块405,用于按预设算法计算确定目标客户端对应的rs,将目标请求发送至目标客户端对应的rs,并将目标客户端的客户端标识与rs的标识之间的对应关系发送至存储设备进行存储。

本发明实施例中,在负载均衡系统中引入存储设备,其存储了负载均衡设备发送的客户端标识与rs标识的对应关系,这个对应关系是负载均衡设备未在存储设备上查询到客户端对应的rs时,通过预设算法确定出客户端对应的rs后,发送到存储设备中的。这样负载均衡设备能够在转发目标客户端的目标请求之前,先在存储设备中查询目标客户端对应的rs,再将目标请求发送至该rs,保证了同一用户针对有状态业务的请求转发至同一个rs。而且,本发明实施例中,交换机确定目标请求对应的负载均衡设备时,对目标请求中用于计算哈希值的序列并无限定,因而对负载均衡系统实现其负载均衡功能的影响不大。

另外,本发明实施例中,当负载均衡设备未在存储设备上查询到目标客户端对应的rs时,可以通过预设算法确定目标客户端对应的rs,将目标请求发送至该rs,并将目标客户端标识与rs标识的对应关系发送至存储设备进行存储,从而便于负载均衡设备针对目标客户端的后续请求,在存储设备上查询对应的rs,以实现将同一客户端针对有状态业务的请求转发至同一个rs。

相应于图3所示方法实施例,本发明实施例还提供了一种负载均衡装置,如图5所示,图5为本发明实施例提供的负载均衡装置的另一种结构图,该装置应用于负载均衡系统中的负载均衡设备,该负载均衡系统包括:交换机、负载均衡设备和存储设备,该装置包括:第一接收模块501、查询模块502、第四发送模块503、第一发送模块504、第二接收模块505、第二发送模块506、第三发送模块507和存储模块508,其中,第一接收模块501、第一发送模块504、第二接收模块505、第二发送模块506、第三发送模块507可以分别与图4实施例中的第一接收模块401、第一发送模块402、第二接收模块403、第二发送模块404、第三发送模块405完全相同,这里不再赘述。

本实施例中,负载均衡设备配置可以有本地存储器。

查询模块502,用于在第一发送模块504向存储设备发送包含目标客户端标识的查询请求之前,在本地存储器中已存储的客户端标识与rs的标识之间的对应关系中,查询目标客户端对应的rs;若查询到,则触发第四发送模块503;若未查询到,则触发第一发送模块504。

第四发送模块503,用于将目标请求发送至目标客户端对应的rs。

存储模块508,用于在第三发送模块507按预设算法计算确定目标客户端对应的rs之后,将目标客户端的客户端标识与rs的标识之间的对应关系存储至本地存储器。

本发明实施例提供的负载均衡装置,由于负载均衡设备在存储设备中查询目标客户端对应的rs之前,先在本地存储器中查询目标客户端对应的rs,因而可以降低负载均衡设备与存储设备之间的网络开销。另外,本发明实施例中,负载均衡设备通过预设算法确定目标客户端对应的rs之后,将目标客户端标识与rs标识的对应关系发送至本地存储器进行存储,从而便于负载均衡设备针对目标客户端的后续请求,在本地存储器上查询对应的rs,以降低负载均衡设备与存储设备之间的网络开销。

在图5所示实施例中,可选地,负载均衡设备的本地存储器中已存储的客户端标识与rs的标识之间的对应关系中,还包含每个客户端的计时起始时刻;每个客户端的计时起始时刻的初始值为向存储设备发送该客户端的客户端标识与rs的标识之间的对应关系的时刻;

上述装置还包括:

判断模块(图中未示出),用于针对每个客户端,根据计时起始时刻,实时判断是否达到预设的第二超时时长,如果是,则将本地存储器中该客户端的客户端标识与rs的标识之间的对应关系删除。

在图5所示实施例中,可选地,上述装置还包括:

更新模块(图中未示出),用于在查询模块502查询到目标客户端对应的rs后,将目标客户端的计时起始时刻更新为本次查询的查询时刻。

本发明实施例还提供了一种负载均衡设备,如图6所示,所述负载均衡设备包括:处理器601、通信接口602、存储器603和通信总线604,其中,处理器601,通信接口602,存储器603通过通信总线604完成相互间的通信;

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

处理器601,用于执行存储器603上所存放的程序时,实现如下步骤:

接收所述交换机发送的目标请求;其中,所述目标请求是目标客户端预先向所述交换机发送的包含目标客户端标识的请求;

向所述存储设备发送包含所述目标客户端标识的查询请求,以使所述存储设备从已存储的客户端标识与rs的标识之间的对应关系中,查询所述目标客户端对应的rs,并根据是否查询到,生成包含所述目标客户端对应的rs的标识的查询响应或不包含所述目标客户端对应的rs标识的查询响应发送至所述负载均衡设备;

接收所述存储设备返回的所述查询响应;

若所述查询响应中包含所述目标客户端对应的rs的标识,则将所述目标请求发送至所述目标客户端对应的rs;

若所述查询响应中不包含所述目标客户端对应的rs的标识,则按预设算法计算确定所述目标客户端对应的rs,将所述目标请求发送至所述目标客户端对应的rs,并将所述目标客户端的客户端标识与rs的标识之间的对应关系发送至存储设备进行存储。

本发明实施例提供的负载均衡设备,处理器通过执行存储器上所存放的程序时,由于在负载均衡系统中引入存储设备,其存储了负载均衡设备发送的客户端标识与rs标识的对应关系,这个对应关系是负载均衡设备未在存储设备上查询到客户端对应的rs时,通过预设算法确定出客户端对应的rs后,发送到存储设备中的。这样负载均衡设备能够在转发目标客户端的目标请求之前,先在存储设备中查询目标客户端对应的rs,再将目标请求发送至该rs,保证了同一用户针对有状态业务的请求转发至同一个rs。而且,本发明实施例中,交换机确定目标请求对应的负载均衡设备时,对目标请求中用于计算哈希值的序列并无限定,因而对负载均衡系统实现其负载均衡功能的影响不大。另外,本发明实施例中,当负载均衡设备未在存储设备上查询到目标客户端对应的rs时,可以通过预设算法确定目标客户端对应的rs,将目标请求发送至该rs,并将目标客户端标识与rs标识的对应关系发送至存储设备进行存储,从而便于负载均衡设备针对目标客户端的后续请求,在存储设备上查询对应的rs,以实现将同一客户端针对有状态业务的请求转发至同一个rs。

上述负载均衡设备提到的通信总线可以是外设部件互连标准(peripheralcomponentinterconnect,简称pci)总线或扩展工业标准结构(extendedindustrystandardarchitecture,简称eisa)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。

通信接口用于上述负载均衡设备与其他设备之间的通信。

存储器可以包括随机存取存储器(randomaccessmemory,简称ram),也可以包括非易失性存储器(non-volatilememory),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。

上述的处理器可以是通用处理器,包括中央处理器(centralprocessingunit,简称cpu)、网络处理器(networkprocessor,简称np)等;还可以是数字信号处理器(digitalsignalprocessing,简称dsp)、专用集成电路(applicationspecificintegratedcircuit,简称asic)、现场可编程门阵列(field-programmablegatearray,简称fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。

在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述实施例中任一的负载均衡方法。

本发明实施例提供的计算机可读存储介质内存储的指令,当其在计算机上运行时,由于在负载均衡系统中引入存储设备,其存储了负载均衡设备发送的客户端标识与rs标识的对应关系,这个对应关系是负载均衡设备未在存储设备上查询到客户端对应的rs时,通过预设算法确定出客户端对应的rs后,发送到存储设备中的。这样负载均衡设备能够在转发目标客户端的目标请求之前,先在存储设备中查询目标客户端对应的rs,再将目标请求发送至该rs,保证了同一用户针对有状态业务的请求转发至同一个rs。而且,本发明实施例中,交换机确定目标请求对应的负载均衡设备时,对目标请求中用于计算哈希值的序列并无限定,因而对负载均衡系统实现其负载均衡功能的影响不大。另外,本发明实施例中,当负载均衡设备未在存储设备上查询到目标客户端对应的rs时,可以通过预设算法确定目标客户端对应的rs,将目标请求发送至该rs,并将目标客户端标识与rs标识的对应关系发送至存储设备进行存储,从而便于负载均衡设备针对目标客户端的后续请求,在存储设备上查询对应的rs,以实现将同一客户端针对有状态业务的请求转发至同一个rs。

在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一的负载均衡方法。

本发明实施例提供的包含指令的计算程序产品,当其在计算机上运行时,由于在负载均衡系统中引入存储设备,其存储了负载均衡设备发送的客户端标识与rs标识的对应关系,这个对应关系是负载均衡设备未在存储设备上查询到客户端对应的rs时,通过预设算法确定出客户端对应的rs后,发送到存储设备中的。这样负载均衡设备能够在转发目标客户端的目标请求之前,先在存储设备中查询目标客户端对应的rs,再将目标请求发送至该rs,保证了同一用户针对有状态业务的请求转发至同一个rs。而且,本发明实施例中,交换机确定目标请求对应的负载均衡设备时,对目标请求中用于计算哈希值的序列并无限定,因而对负载均衡系统实现其负载均衡功能的影响不大。另外,本发明实施例中,当负载均衡设备未在存储设备上查询到目标客户端对应的rs时,可以通过预设算法确定目标客户端对应的rs,将目标请求发送至该rs,并将目标客户端标识与rs标识的对应关系发送至存储设备进行存储,从而便于负载均衡设备针对目标客户端的后续请求,在存储设备上查询对应的rs,以实现将同一客户端针对有状态业务的请求转发至同一个rs。

在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行计算机程序指令时,全部或部分地产生按照本发明实施例的流程或功能。计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态硬盘solidstatedisk(ssd))等。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个......”限定的要素,并不排除在包括要素的过程、方法、物品或者设备中还存在另外的相同要素。

本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于方法/装置/负载均衡设备/存储介质/计算机程序产品实施例而言,由于其基本相似于系统实施例,所以描述的比较简单,相关之处参见系统实施例的部分说明即可。

以上仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1