发明内容
为了提高集群的服务能力,本发明实施例提供了一种客户端及负载均衡的方法。所述技术方案如下:
一种负载均衡的方法,所述方法包括:
客户端获取负载配置;
所述客户端根据所述负载配置,向服务集群中相应的服务节点发送调用请求,使所述服务节点接收并处理所述调用请求,返回处理结果;
所述客户端接收所述服务节点返回的所述处理结果。
进一步的,所述客户端根据所述负载配置,向服务集群中相应的服务节点发送调用请求之前包括:
所述客户端加载所述服务集群中所有服务节点,逐一与所有服务节点分别建立通信通道。
进一步的,所述客户端根据所述负载配置,向服务集群中相应的服务节点发送调用请求包括:
所述客户端判断自身与所述服务集群中相应的服务节点之间的通信通道是否有效;
如果有效,所述客户端根据所述负载配置,向所述服务集群中相应的服务节点发送调用请求。
进一步的,所述负载配置为顺序方式时,
所述客户端根据所述负载配置,向服务集群中相应的服务节点发送调用请求包括:
所述客户端按照预设顺序依次从所述服务集群中选择一个服务节点,向所述选中的服务节点发送调用请求。
进一步的,所述负载配置为随机方式时,
所述客户端根据所述负载配置,向服务集群中相应的服务节点发送调用请求包括:
所述客户端随机从所述服务集群中选择一个服务节点,向所述选中的服务节点发送调用请求。
一种客户端,所述客户端包括:
获取模块,用于获取负载配置;
请求模块,用于根据所述负载配置,向服务集群中相应的服务节点发送调用请求,使所述服务节点接收并处理所述调用请求,返回处理结果;
接收模块,用于接收所述服务节点返回的所述处理结果。
进一步的,所述客户端还包括:
建立模块,用于执行所述请求模块之前,加载所述服务集群中所有服务节点,逐一与所有服务节点分别建立通信通道。
进一步的,所述请求模块,还用于判断自身与所述服务集群中相应的服务节点之间的通信通道是否有效;
如果有效,根据所述负载配置,向所述服务集群中相应的服务节点发送调用请求。
进一步的,所述负载配置为顺序方式时,
所述请求模块,具体用于按照预设顺序依次从所述服务集群中选择一个服务节点,向所述选中的服务节点发送调用请求。
进一步的,所述负载配置为随机方式时,
所述请求模块,具体用于随机从所述服务集群中选择一个服务节点,向所述选中的服务节点发送调用请求。
本发明实施例提供的技术方案带来的有益效果是:
通过客户端获取负载配置,根据负载配置向服务集群中相应的服务节点发送调用请求,并接收服务节点返回的处理结果,也即服务节点的负载完全依赖于请求的客户端,间接实现了服务集群的负载均衡,提高了集群的服务能力;并且预先与所有服务节点分别建立通信通道,判断某一服务节点的通信通道有效后,再向其发送调用请求,防止在集群侧进行负载均衡时服务节点异常导致客户端的调用请求不正常,有效的增强了整个服务集群的健壮性,实现了自适应调用的客户端。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
实施例1
参见图1,本实施例提供了一种负载均衡的方法,包括:
101:客户端获取负载配置;
102:客户端根据负载配置,向服务集群中相应的服务节点发送调用请求,使服务节点接收并处理调用请求,返回处理结果;
103:客户端接收服务节点返回的处理结果。
本实施例提供的方法,通过客户端获取负载配置,根据负载配置向服务集群中相应的服务节点发送调用请求,并接收服务节点返回的处理结果,也即服务节点的负载完全依赖于请求的客户端,间接实现了服务集群的负载均衡,提高了集群的服务能力。
参见图2所示的负载均衡网络架构,包括客户端和服务集群,客户端包括若干个具体的客户端,以客户端C1、客户端C2、客户端Cn进行示意,服务集群划分为若干实际处理客户端调用请求的服务节点,以服务节点N1、服务节点N2、服务节点N3、服务节点Nn进行示意。
基于上述网络架构,参见图3,下面详细介绍负载均衡的实现过程。
201:客户端加载服务集群中所有服务节点,逐一与所有服务节点分别建立通信通道;
进一步的,为了安全起见,通信通道的建立一般需要客户端和服务集群双方鉴权,以保证通道的合法性。
202:客户端获取负载配置;
具体的,负载配置可以是预先设置在客户端的,也可以是客户端从某一配置服务器预先获取的。负载配置用于实现服务集群的负载均衡,其规定了一段时间内,客户端对服务集群各个服务节点的访问方式、频率等信息,本实施例并不限定负载配置的具体内容。
203:可选的,客户端判断自身与所述服务集群中相应的服务节点之间的通信通道是否有效;
客户端从建立的通信通道失效来判定对应的服务节点异常,服务不可用,客户转而调用可用的服务节点的服务,防止在集群侧进行负载均衡时服务节点异常导致客户端的调用请求不正常,有效的增强了整个服务集群的健壮性,实现了自适应调用的客户端。相应的,如果有效,执行步骤204。
进一步的,客户端也可以不判断通信通道是否有效,直接执行步骤204。
204:客户端根据负载配置,向服务集群中相应的服务节点发送调用请求;
具体的,如果负载配置为顺序方式时,客户端按照预设顺序依次从服务集群中选择一个服务节点,向选中的服务节点发送调用请求。如果负载配置为随机方式时,客户端随机从服务集群中选择一个服务节点,向选中的服务节点发送调用请求。
下面以顺序方式平均分配负载量为例,说明负载均衡的过程。
对于每一客户端都设定如下负载配置,以客户端C1为例,客户端C1和服务节点N1、N2、N3分别建立通信通道,按照预设顺序N1、N2、N3,客户端C1的第一个调用请求发送给服务节点N1,其第二个调用请求发送给服务节点N2,其第三个调用请求发送给服务节点N3,然后其第四个调用请求又发送给服务节点N1,其第五个调用请求发送给服务节点N2,第六个调用请求发送给服务节点N3,周而复始,实现对服务集群中各服务节点的负载均衡要求。
下面以随机方式平均分配负载量为例,说明负载均衡的过程。
对于每一客户端都设定如下负载配置,以客户端C1为例,客户端C1和服务节点N1、N2、N3分别建立通信通道,客户端C1从服务集群中随机选择一个服务节点N2,并向其发送第一个调用请求,然后从服务集群中再随机选择一个服务节点N1,并向其发送第二个调用请求,依次类推,通过随机选择的方式大致实现对服务集群中各服务节点的负载均衡要求。
另外,还可以在负载配置中设置请求阈值,用于限制用户在一定时间内发送请求的数量,防止过量请求导致服务器崩溃。
205:服务节点接收并处理调用请求,返回处理结果;
206:客户端接收服务节点返回的处理结果。
本实施例提供的方法,通过客户端获取负载配置,根据负载配置向服务集群中相应的服务节点发送调用请求,并接收服务节点返回的处理结果,也即服务节点的负载完全依赖于请求的客户端,间接实现了服务集群的负载均衡,提高了集群的服务能力;并且预先与所有服务节点分别建立通信通道,判断某一服务节点的通信通道有效后,再向其发送调用请求,防止在集群侧进行负载均衡时服务节点异常导致客户端的调用请求不正常,有效的增强了整个服务集群的健壮性,实现了自适应调用的客户端。
实施例2
参见图4,本实施例提供了一种客户端,包括:
获取模块301,用于获取负载配置;
请求模块302,用于根据负载配置,向服务集群中相应的服务节点发送调用请求,使服务节点接收并处理调用请求,返回处理结果;
接收模块303,用于接收服务节点返回的处理结果。
进一步的,客户端还包括:
建立模块,用于执行请求模块302之前,加载服务集群中所有服务节点,逐一与所有服务节点分别建立通信通道。
进一步的,请求模块302,还用于判断自身与服务集群中相应的服务节点之间的通信通道是否有效;
如果有效,根据负载配置,向服务集群中相应的服务节点发送调用请求。
当负载配置为顺序方式时,
请求模块302,具体用于按照预设顺序依次从服务集群中选择一个服务节点,向选中的服务节点发送调用请求。
当负载配置为随机方式时,
请求模块302,具体用于随机从服务集群中选择一个服务节点,向选中的服务节点发送调用请求。
本实施例提供的客户端,与方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
本实施例提供的客户端,通过获取负载配置,根据负载配置向服务集群中相应的服务节点发送调用请求,并接收服务节点返回的处理结果,也即服务节点的负载完全依赖于请求的客户端,间接实现了服务集群的负载均衡,提高了集群的服务能力;并且预先与所有服务节点分别建立通信通道,判断某一服务节点的通信通道有效后,再向其发送调用请求,防止在集群侧进行负载均衡时服务节点异常导致客户端的调用请求不正常,有效的增强了整个服务集群的健壮性,实现了自适应调用的客户端。
以上实施例提供的技术方案中的全部或部分内容可以通过软件编程实现,其软件程序存储在可读取的存储介质中,存储介质例如:计算机中的硬盘、光盘或软盘。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。