一种负载均衡方法及装置与流程

文档序号:16149695发布日期:2018-12-05 17:18阅读:185来源:国知局
一种负载均衡方法及装置与流程

本申请涉及通信技术领域,特别涉及一种负载均衡方法及装置。

背景技术

随着信息化在各行业的发展,企业运行所涉及各类型业务的数据量越来越庞杂。企业的服务器往往要处理客户端发送的海量的访问请求。在这种情况下,搭载于服务器集群的分布式文件系统(distributedfilesystem)应运而生。搭载分布式文件系统的各服务器充当节点服务器(networknodeserver)处理客户端发送的访问请求。

然而,客户端访问节点服务器时,多个客户端的访问请求可能会集中在少数节点服务器上,此时,少数节点服务器的性能压力很大,而其它节点服务器又处于闲置状态,导致分布式文件系统的整体效率低下。此外,若出现单个节点服务器故障的情况下,访问该节点服务器的客户端无法正常运行业务。



技术实现要素:

有鉴于此,本申请提供一种负载均衡方法及装置,用以实现多个节点服务器的负载均衡,并避免因任一节点服务器出现故障导致客户端无法正常运行业务的问题。

具体地,本申请是通过如下技术方案实现的:

一种负载均衡方法,应用于分布式文件系统的反向代理服务器,所述反向代理服务器为所述分布式文件系统的多个节点服务器提供反向代理,所述方法包括:

接收访问请求,判断所述访问请求的源ip是否已被分配可用的节点服务器;其中,所述访问请求的目的ip为所述反向代理服务器的ip地址;

如果否,从提供反向代理的多个节点服务器中确定可用的节点服务器;

基于预设的负载均衡算法,从所述可用的节点服务器中为所述访问请求分配节点服务器,并向该节点服务器发送所述访问请求。

在所述负载均衡方法中,所述方法还包括:

如果是,向所述节点服务器发送所述访问请求。

在所述负载均衡方法中,所述基于预设的负载均衡算法,从所述可用节点服务器中为所述访问请求分配节点服务器,包括:

对所述访问请求的源ip进行哈希计算,获得哈希值;

基于轮询算法从所述可用的节点服务器中选择一个节点服务器;

建立所述哈希值与该节点服务器的设备标识的关联关系。

在所述负载均衡方法中,所述反向代理服务器为包括若干haproxy主机的虚拟反向代理服务器;

所述接收访问请求,包括:

接收访问请求;其中,所述访问请求的目的ip为所述虚拟反向代理服务器的虚拟ip地址。

在所述负载均衡方法中,所述节点服务器搭载数据查询服务;所述数据查询服务包括hiveserver1服务、hiveserver2服务、impaladeamon服务中的一种或多种。

一种负载均衡装置,应用于分布式文件系统的反向代理服务器,所述反向代理服务器为所述分布式文件系统的多个节点服务器提供反向代理,所述装置包括:

接收单元,用于接收访问请求,判断所述访问请求的源ip是否已被分配可用的节点服务器;其中,所述访问请求的目的ip为所述反向代理服务器的ip地址;

判断单元,用于如果否,从提供反向代理的多个节点服务器中确定可用的节点服务器;

发送单元,用于基于预设的负载均衡算法,从所述可用的节点服务器中为所述访问请求分配节点服务器,并向该节点服务器发送所述访问请求。

在所述负载均衡装置中,所述装置还包括:

所述发送单元,进一步用于如果是,向所述节点服务器发送所述访问请求。

在所述负载均衡装置中,所述发送单元,进一步用于:

对所述访问请求的源ip进行哈希计算,获得哈希值;

基于轮询算法从所述可用的节点服务器中选择一个节点服务器;

建立所述哈希值与该节点服务器的设备标识的关联关系。

在所述负载均衡装置中,所述反向代理服务器为包括若干haproxy主机的虚拟反向代理服务器;

所述接收单元,进一步用于接收访问请求;其中,所述访问请求的目的ip为所述虚拟反向代理服务器的虚拟ip地址。

在所述负载均衡装置中,所述节点服务器搭载数据查询服务;所述数据查询服务包括hiveserver1服务、hiveserver2服务、impaladeamon服务中的一种或多种。

在本申请实施例中,分布式系统的反向代理服务器向分布式文件系统的多个节点服务器提供反向代理;客户端向访问分布式文件系统时,访问请求中的目的ip为反向代理服务器的ip地址;由反向代理服务器基于预设的负载均衡算法为各客户端分配可用的节点服务器,从而实现了多个节点服务器的负载均衡;此外,任一节点服务器出现故障后,客户端并不感知出现的故障,仍由反向代理服务器分配可用的节点服务器,从而避免因任一节点服务器出现故障导致客户端无法正常运行业务。

附图说明

图1是本申请示出的一种客户端访问分布式文件系统的网络架构图;

图2是本申请示出的一种负载均衡方法的流程图;

图3是本申请示出的另一种客户端访问分布式文件系统的网络架构图;

图4是本申请示出的一种负载均衡装置的实施例框图;

图5是本申请示出的一种负载均衡装置的硬件结构图。

具体实施方式

为了使本技术领域的人员更好地理解本发明实施例中的技术方案,并使本发明实施例的上述目的、特征和优点能够更加明显易懂,下面结合附图对现有技术方案和本发明实施例中的技术方案作进一步详细的说明。

参见图1,为本申请示出的一种客户端访问分布式文件系统的网络架构图,如图1所示,多个客户端通过反向代理服务器访问分布式文件系统。

分布式文件系统搭载于服务器集群,该服务器集群包括多个节点服务器,节点服务器1、节点服务器2……节点服务器n。

各客户端并不感知各节点服务器,在访问分布式文件系统时,发送的访问请求中的目的ip为反向代理服务器的ip地址。

反向代理服务器接收到各客户端发送的访问请求后,根据负载均衡算法将上述访问请求分配至可用的节点服务器。

任一节点服务器发生故障,都不会影响客户端的业务处理,保证了分布式文件系统的高可用性;而反向代理服务器可以实现对节点服务器的负载均衡处理,提高分布式文件系统的整体效率。

参见图2,为本申请示出的一种负载均衡方法的流程图,该方法应用于分布式文件系统的反向代理服务器,该反向代理服务器为所述分布式文件系统的多个节点服务器提供反向代理,该方法包括以下步骤:

步骤201:接收访问请求,判断所述访问请求的源ip是否已被分配可用的节点服务器;其中,所述访问请求的目的ip为所述反向代理服务器的ip地址。

这里,分布式文件系统可以包括基于hadoop的大数据平台,或者,也可以是andrew系统、kass系统等。

各客户端发送的访问请求中的目的ip为反向代理服务器的ip地址,因此,反向代理服务器可以接收各客户端对分布式文件系统的访问请求。

反向代理服务器可为各客户端分配一个专用的节点服务器,从而使得各节点服务器处理其对应的客户端的访问请求。

反向代理服务器接收到访问请求后,首先判断是否为该访问请求的源ip分配节点服务器。

作为一种实施例,反向代理服务器可以建立节点分配表,该节点分配表包括节点服务器的设备标识和客户端的ip地址的哈希值的关联关系。反向代理服务器为任一客户端分配节点服务器后,即可将计算出的该客户端的ip地址的哈希值和该节点服务器的设备标识的关联关系添加到上述节点分配表。其中,节点服务器的设备标识可以是节点服务器的ip地址。

后续反向代理服务器可以计算访问请求的源ip的哈希值,然后基于该哈希值查找上述节点分配表,从而确定是否为源ip指示的客户端分配节点服务器。

一方面,已为该访问请求的源ip分配节点服务器。

作为一种实施例,若反向代理服务器计算出访问请求的源ip的哈希值,并根据该哈希值可以在上述节点分配表中查找对应的节点服务器的设备标识,则可以确定已为发送该访问请求的客户端分配节点服务器。

此时,应当考虑到,节点服务器可能在运行过程中出现故障,因此,反向代理服务器需进一步判断该节点服务器是否可用。

作为一种实施例,分布式文件系统的各节点服务器可以周期性向反向代理服务器发送心跳报文。反向代理服务器在接收到任一节点服务器发送的心跳报文时,确定该节点服务器运行正常。若反向代理服务器在预设的异常时长内未接收任一节点服务器发送的心跳报文,则可以确定该节点服务器不可用。

一种情况下,反向代理服务器确定为上述访问请求的源ip分配的节点服务器可用,此时,反向代理服务器可以向该节点服务器发送上述访问请求。

另一种情况下,反向代理服务器确定为上述访问请求的源ip分配的节点服务器不可用,在这种情况下,反向代理服务器需为发送该访问请求的客户端重新分配节点服务器,具体详见下文相关描述。

另一方面,还没为该访问请求的源ip分配节点服务器。

作为一种实施例,若反向代理服务器计算出访问请求的源ip的哈希值,然而无法在上述节点分配表中查找到该哈希值对应的节点服务器的设备标识,则可以确定还未给发送该访问请求的客户端分配节点服务器。

在这种情况下,反向代理器需为发送该访问请求的客户端分配节点服务器,具体详见下文相关描述。

步骤202:如果否,从提供反向代理的多个节点服务器中确定可用的节点服务器。

反向代理服务器需从自身提供反向代理的多个节点服务器中确定可用的节点服务器。

作为一种实施例,反向代理服务器可以基于各节点服务器发送心跳报文的情况,确定持续发送心跳报文的节点服务器为可用的节点服务器。

步骤203:基于预设的负载均衡算法,从所述可用的节点服务器中为所述访问请求分配节点服务器,并向该节点服务器发送所述访问请求。

反向代理服务器通过负载均衡算法为访问请求分配节点服务器后,实现分布式文件系统的多个节点服务器的负载均衡。

在示出的一种实施方式中,反向代理服务器可以对上述访问请求的源ip进行哈希计算,获得哈希值。

然后基于轮询算法从上述可用的节点服务器中选择一个节点服务器,然后建立该哈希值与该节点服务器的设备标识的关联关系。

反向节点服务器可将该关联关系添加到上述节点分配表,当下一次接收到该源ip指示的客户端发送的访问请求后,反向代理服务器可以基于该关联关系确定已为该客户端分配节点服务器,进而判断该节点服务器是否可用。

在示出的另一种实施方式中,由于各节点服务器的处理性能不同,反向代理服务器可以为不同的节点服务器分配不同的权值。当反向代理服务器计算得到上述访问请求的源ip的哈希值后,可以基于加权轮询算法从上述可用的节点服务器中选择一个节点服务器,然后建立该哈希值与该节点服务器的设备标识的关联关系。当然,反向代理服务器会将已建立的关联关系添加到上述节点分配表。

在这种实施方式中,由于考虑到各节点服务器的处理性能的差异,在为访问请求分配节点服务器时,可以更有效地实现分布式文件系统中各节点服务器的负载均衡。

反向代理服务器为访问请求分配可用的节点服务器后,可向该节点服务器发送上述访问请求。

在本申请实施例中,各客户端通过反向代理服务器访问分布式文件系统,若反向代理服务器发生故障,则会导致整个分布式文件系统无法访问。

为实现分布式文件系统的高可用性,可以将若干反向代理服务器整合为一个虚拟代理服务器。参见图3,为本申请示出的另一种客户端访问分布式文件系统的网络架构图,如图3所示,反向代理服务器1和反向代理服务器2形成虚拟反向代理服务器,多个客户端通过虚拟反向代理服务器访问分布式文件系统。

虚拟反向代理服务器中实际由一个反向代理服务器提供反向代理服务,若该反向代理服务器出现故障,则其它反向代理服务器可以接替该反向代理服务器提供反向代理服务。

对于客户端或节点服务器而言,虚拟反向代理服务器与普通的反向代理服务器并无区别。当然,虚拟反向代理服务器与各客户端或节点服务器通信时,所采用的ip地址为虚拟反向代理服务器的虚拟ip地址(virtualip)。

各客户端并不感知各节点服务器,在访问分布式文件系统时,发送的访问请求中的目的ip为虚拟反向代理服务器的虚拟ip地址。

在实际应用中,虚拟反向代理服务器可以由若干haproxy主机基于keepalived机制构成。具体可参照相关技术,在此不再赘述。

在这种实施例中,若虚拟反向代理服务器中的任一反向代理服务器发生故障,另一反向代理服务器可以接替完成反向代理的工作,避免因反向代理服务器宕机导致整个分布式文件系统无法访问,实现了分布式文件系统的高可用性。

在本申请实施例中,分布式文件系统的各节点服务器可以搭载数据查询服务。其中,数据查询服务可以包括hiveserver1服务、hiveserver2服务、impaladeamon服务中的一种或多种。

在这种实施例中,反向代理服务器向各搭载数据查询服务的节点服务器提供反向代理及负载均衡,使得分布式文件系统的数据查询服务具有高可用性,且提高了整体的数据查询效率。

作为一种实施例,由若干haproxy主机基于keepalived机制构成的虚拟反向代理服务器为搭载hiveserver2服务的节点服务器提供反向代理的网络架构中,任一节点服务器崩溃都不会导致数据查询服务不可用。

综上所述,在本申请技术方案中,反向代理服务器为分布式文件系统的多个节点服务器提供反向代理;反向代理服务器接收访问请求后,可判断上述访问请求的源ip是否已被分配可用的节点服务器,如果否,则从提供反向代理的多个节点服务器中确定可用的节点服务器,并基于预设的负载均衡算法,从可用的节点服务器中为上述访问请求分配节点服务器,然后向该节点服务器发送访问请求;

由于客户端并不感知分布式文件系统中的节点服务器,而是将访问请求均发送至反向代理服务器;反向代理服务器可以选择可用的节点服务器分配给访问请求,从而实现了负载均衡以及分布式文件系统的高可用性。

与前述负载均衡方法的实施例相对应,本申请还提供了负载均衡装置的实施例。

参见图4,为本申请示出的一种负载均衡装置的实施例框图,所述装置可以应用于分布式文件系统的反向代理服务器,所述反向代理服务器为所述分布式文件系统的多个节点服务器提供反向代理,所述装置包括:

接收单元410,用于接收访问请求,判断所述访问请求的源ip是否已被分配可用的节点服务器;其中,所述访问请求的目的ip为所述反向代理服务器的ip地址。

判断单元420,用于如果否,从提供反向代理的多个节点服务器中确定可用的节点服务器。

发送单元430,用于基于预设的负载均衡算法,从所述可用的节点服务器中为所述访问请求分配节点服务器,并向该节点服务器发送所述访问请求。

在本例中,所述发送单元430,进一步用于:

如果是,向所述节点服务器发送所述访问请求。

在本例中,所述发送单元430,进一步用于:

对所述访问请求的源ip进行哈希计算,获得哈希值;

基于轮询算法从所述可用的节点服务器中选择一个节点服务器;

建立所述哈希值与该节点服务器的设备标识的关联关系。

在本例中,所述反向代理服务器为包括若干haproxy主机的虚拟反向代理服务器;

所述接收单元410,进一步用于接收访问请求;其中,所述访问请求的目的ip为所述虚拟反向代理服务器的虚拟ip地址。

在本例中,所述节点服务器搭载数据查询服务;所述数据查询服务包括hiveserver1服务、hiveserver2服务、impaladeamon服务中的一种或多种。

本申请负载均衡装置的实施例可以应用在反向代理服务器上。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在反向代理服务器的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图5所示,为本申请负载均衡装置所在反向代理服务器的一种硬件结构图,除了图5所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的反向代理服务器通常根据该负载均衡装置的实际功能,还可以包括其他硬件,对此不再赘述。

上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。

对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。

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