一种客户端及负载均衡的方法

文档序号:7753856阅读:179来源:国知局
专利名称:一种客户端及负载均衡的方法
技术领域
本发明涉及集群领域,特别涉及一种客户端及负载均衡的方法。
背景技术
集群是由两台或多台服务器构成的一种松散耦合的服务节点集合,可以为用户提供网络服务或应用程序等。集群中非常重要的一个问题是负载均衡,负载均衡是指集群中的服务节点根据自身的计算能力,承担相应的负载。目前,通常在集群侧设置一负载均衡器,由负载均衡器进行负载均衡的控制,具体过程如下客户端发送调用请求给提供服务的集群,集群中的负载均衡器接收到客户端的调用请求后,根据集群中各个服务节点的负载情况,转发调用请求给相应的服务节点。该服务节点处理客户端的调用请求,并返回相应的处理结果。综合上述,现有技术在集群侧进行负载均衡,会占用集群侧的处理资源,降低集群的服务能力。

发明内容
为了提高集群的服务能力,本发明实施例提供了一种客户端及负载均衡的方法。 所述技术方案如下—种负载均衡的方法,所述方法包括客户端获取负载配置;所述客户端根据所述负载配置,向服务集群中相应的服务节点发送调用请求,使所述服务节点接收并处理所述调用请求,返回处理结果;所述客户端接收所述服务节点返回的所述处理结果。进一步的,所述客户端根据所述负载配置,向服务集群中相应的服务节点发送调用请求之前包括所述客户端加载所述服务集群中所有服务节点,逐一与所有服务节点分别建立通信通道。进一步的,所述客户端根据所述负载配置,向服务集群中相应的服务节点发送调用请求包括所述客户端判断自身与所述服务集群中相应的服务节点之间的通信通道是否有效;如果有效,所述客户端根据所述负载配置,向所述服务集群中相应的服务节点发送调用请求。进一步的,所述负载配置为顺序方式时,所述客户端根据所述负载配置,向服务集群中相应的服务节点发送调用请求包括
3
所述客户端按照预设顺序依次从所述服务集群中选择一个服务节点,向所述选中的服务节点发送调用请求。进一步的,所述负载配置为随机方式时,所述客户端根据所述负载配置,向服务集群中相应的服务节点发送调用请求包括所述客户端随机从所述服务集群中选择一个服务节点,向所述选中的服务节点发送调用请求。一种客户端,所述客户端包括获取模块,用于获取负载配置;请求模块,用于根据所述负载配置,向服务集群中相应的服务节点发送调用请求, 使所述服务节点接收并处理所述调用请求,返回处理结果;接收模块,用于接收所述服务节点返回的所述处理结果。进一步的,所述客户端还包括建立模块,用于执行所述请求模块之前,加载所述服务集群中所有服务节点,逐一与所有服务节点分别建立通信通道。进一步的,所述请求模块,还用于判断自身与所述服务集群中相应的服务节点之间的通信通道是否有效;如果有效,根据所述负载配置,向所述服务集群中相应的服务节点发送调用请求。进一步的,所述负载配置为顺序方式时,所述请求模块,具体用于按照预设顺序依次从所述服务集群中选择一个服务节点,向所述选中的服务节点发送调用请求。进一步的,所述负载配置为随机方式时,所述请求模块,具体用于随机从所述服务集群中选择一个服务节点,向所述选中的服务节点发送调用请求。本发明实施例提供的技术方案带来的有益效果是通过客户端获取负载配置,根据负载配置向服务集群中相应的服务节点发送调用请求,并接收服务节点返回的处理结果,也即服务节点的负载完全依赖于请求的客户端,间接实现了服务集群的负载均衡,提高了集群的服务能力;并且预先与所有服务节点分别建立通信通道,判断某一服务节点的通信通道有效后,再向其发送调用请求,防止在集群侧进行负载均衡时服务节点异常导致客户端的调用请求不正常,有效的增强了整个服务集群的健壮性,实现了自适应调用的客户端。


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