负载均衡方法及负载均衡系统的制作方法

文档序号:7768773阅读:121来源:国知局

专利名称::负载均衡方法及负载均衡系统的制作方法
技术领域
:本发明涉及地址转换协议
技术领域
,尤其涉及一种负载均衡方法及负载均衡系统。
背景技术
:当IP数据包通过以太网发送时,由于以太网设备以48位以太网地址即介质访问控制(MediaAccessControl,MAC)地址传输以太网数据包,并不识别IP数据包的32位IP地址,因此,IP驱动必须把目的IP地址转换成目的MAC地址。在以太网地址与IP地址之间存在着某种静态的或算法的映射,常常需要查看一张表即地址转换协议(AddressResolutionProtocol,ARP)表。ARP就是用来确定这些映射的协议。通过查找ARP表,就可以找到IP地址对应的以太网地址,从而将IP地址转换为相应的以太网地址。ARP工作时,如图1所示,客户端发送一个含有所希望的IP地址的以太网广播数据包,即广播一个ARP请求“ARP_ReqUeSt”。某一台服务器即目的主机,或另一个代表该主机的系统,以一个含有IP地址和该MAC地址的数据包作为应答。客户端将返回的数据包中的IP地址和缓存起来,以节约不必要的ARP通信,并向目的服务器发出业务报文。对于需要提供web服务、ftp服务等服务的门户网站,往往需要处理大量并发的用户访问请求,单个服务器无法满足处理要求。此时,需要提供多个服务器,用于分担用户的访问请求,即需要实现负载均衡。现有技术中,负载均衡是通过在各服务器的前端提供一个负载均衡器(LoadBalancer,LB)将用户连接请求分配到各台服务器上。具体包括两种方法。一种方法如图2所示,客户端连接到负载均衡器,并请求获得服务器IP地址后,负载均衡器根据负载均衡调度算法选择一个服务器,并将此服务器IP地址返回给客户端。客户端根据返回的服务器IP地址连接到对应的服务器,发起业务请求。但是,这种方法需要连接两次才能进行业务处理,处理效率较低,且由于客户端需首先连接到负载均衡器,使得负载均衡器成为系统的瓶颈,一旦它不能提供服务,整个系统都处于不可使用状态。另一种方法如图3所示,客户端连接到负载均衡器,并发起业务请求。负载均衡器根据负载均衡调度算法选择一个服务器,并将业务请求转发给该服务器。服务器处理完成后,将结果返回给负载均衡器,负载均衡器再将结果返回给客户端。同样,这种方法中负载均衡器成为系统的性能瓶颈,并且,所有的请求和回应都需要经过它转发。一旦负载均衡器不能提供服务,整个系统都处于不可使用状态。它的吞吐量决定了系统的处理能力。
发明内容本发明实施例提出一种负载均衡方法及负载均衡系统,以解决负载均衡器所带来的瓶颈问题。本发明实施例提供了一种负载均衡方法,包括节点接收客户端广播的ARP请求,所述节点位于集群中,所述集群由网络中的多个服务器组成,所述服务器分为主节点和从节点,所述主节点为所述集群中优先级最高的节点;当所述节点为主节点时,根据负载均衡调度算法从所述集群中选择节点,作为所述客户端的服务节点;所述主节点将包含有所述客户端的服务节点的MAC地址的ARP响应返回给所述客户端,以使所述客户端对所述客户端的服务节点发起业务请求。本发明实施例还提供了一种负载均衡系统,包括由网络中的多个服务器组成的集群,所述集群中的服务器分为主节点和从节点,均设置有负载均衡器组件;所述主节点为所述集群中优先级最高的节点;所述主节点中的负载均衡器组件用于根据负载均衡调度算法从所述集群中选择节点,作为所述客户端的服务节点;所述主节点用于将包含有所述客户端的服务节点的MAC地址的ARP响应返回给所述客户端,以使所述客户端对所述客户端的服务节点发起业务请求。上述实施例提供的技术方案通过服务器集群中的主节点选择一个服务器作为客户端的服务节点,使得客户端只需发出一次连接请求即可实现访问请求的负载分配,并且,如果主节点故障时,服务器集群中还可产生新的主节点进行负载均衡的分配,解决了现有负载分配依赖负载均衡器进行分配所带来的瓶颈问题。为了更清楚地说明本发明实施例中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图1为现有技术中ARP工作流程图2为现有技术中一种负载均衡方法的信令流程图3为现有技术中另一种负载均衡方法的信令流程图4为本发明实施例提供的负载均衡方法的流程图5为本发明实施例提供的负载均衡方法中集群示意图6为本发明实施例提供的一种负载均衡系统的结构示意图7为本发明实施例提供的另一种负载均衡系统的结构示意图。具体实施方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。图4为本发明实施例提供的负载均衡方法的流程图。如图4所示,该方法包括步骤41、节点接收客户端广播的ARP请求,所述节点位于集群中,所述集群由网络中的多个服务器组成,所述服务器分为主节点和从节点;所述主节点为所述集群中优先级最高的节点;如图5所示,在局域网中,由服务器A、服务器B、服务器C构成一个集群,对外提供服务。该集群中,服务器A即节点1、服务器B即节点2、服务器C即节点3。客户端通过交换机连接到集群中的各个节点,以解决服务器之间的连接以及数据交换的问题。该集群系统初始启动时,根据各节点的优先级选择一个节点作为主节点。假设节点3的优先级>节点2的优先级>节点1的优先级,则系统初始启动后,节点3为主节点。当优先级最高的节点至少有两个时,选择启动时间最短的节点作为主节点。步骤42、当所述节点为主节点时,根据负载均衡调度算法从所述集群中选择节点,作为所述客户端的服务节点;以图5为例,主节点通过负载均衡调度算法选择节点1作为所述ARP请求的服务节点。步骤43、所述主节点将包含有所述客户端的服务节点的MAC地址的ARP响应返回给所述客户端,以使所述客户端对所述客户端的服务节点发起业务请求。如主节点将包含有节点1的MAC地址的ARP响应返回给所述客户端,以使得客户端可以向节点1发送服务请求。本发明实施例提供的负载均衡方法还可包括所述集群中的所有节点定期向其他节点发送用于告知本节点状态的消息。如集群内每一个节点定期向其它节点发送“Iamalive"消息,用于告知本节点状态正常。本发明实施例提供的负载均衡方法还可包括所述主节点定期向从节点发送客户端与服务器的映射表,以供其他节点变为主节点时使用。如主节点定期向其它节点发送客户端-服务器(Client-server)的映射表(Mappingtable)。非主节点接收到主节点发送的映射表后,保存到内存中,供以后本节点变为主节点时使用。如主节点可根据映射表获知不同客户端的服务节点信息,当某一节点故障时,主节点可根据映射表获知该节点所服务的客户端,并为其所服务的客户端选择新的服务节点,同时更新映射表。当为客户端提供服务的节点因故障不能提供服务时,需要将连接到该节点上的客户端转移到其它节点上去。具体地,本发明实施例提供的负载均衡方法还可包括所述主节点检测所述服务节点;在所述服务节点不可用的情况下,再次根据负载均衡调度算法选择所述集群中的另一个节点,作为新服务节点;将包含有所述新服务节点的MAC地址的ARP响应(response)返回给所述客户端,以使所述客户端对所述新服务节点发起业务请求。换句话说,主节点检测到某节点服务不可用后,根据负载均衡调度算法,主动向连接到该节点的客户端发送ARP响应,让这些客户端透明的转换到集群中的其它节点上。在所述主节点故障的情况下,根据所述集群中其余节点的优先级重新设置主节点。如将优先级最高的节点设置为新主节点。在所述优先级最高的节点为多个情况下,将启动时间最短的节点设置为新主节点。上述实施例提供的技术方案通过服务器集群中的主节点选择一个服务器作为客户端的服务节点,使得客户端只需发出一次连接请求即可实现访问请求的负载分配,并且,当主节点故障时,服务器集群中还可选举出新的主节点进行负载均衡的分配,解决了现有负载分配依赖负载均衡器进行分配所带来的瓶颈问题。图6为本发明实施例提供的一种负载均衡系统的结构示意图。如图6所示,该系统包括由网络中的多个服务器组成的集群61,所述集群中的服务器分为主节点和节点,均设置有负载均衡器组件62;所述主节点为所述集群中优先级最高的节点。具体地,主节点在初始启动时或主节点故障时需要被选举出来。选举根据预先设置的各节点的优先级进行,以优先级最高的节点为主节点。当有多个节点的优先级相同均为最高时,按启动时间长短选择主节点。客户端发送ARP请求时,使用的是广播方式,本集群内所有的机器都能接收到该请求。对于该请求,所述主节点中的负载均衡器组件用于根据负载均衡调度算法选择所述集群中的一个节点,作为所述客户端的服务节点;所述主节点用于将包含有所述客户端的服务节点的MAC地址的ARP响应返回给所述客户端,以使所述客户端对所述客户端的服务节点发起业务请求,返回ARP响应的操作可由LB组件执行。集群中的非主节点,则不做任何回应。集群内节点间通过通信得到其他各节点的负载,从而可以通过负载均衡器组件实现负载均衡调度。具体地,所述节点中的负载均衡器组件还可用于定期向其他节点发送用于告知本节点状态的消息。如集群内每一个节点定期向其它节点发送“Iamalive”消息,用于告知本节点状态。所述主节点中的负载均衡器组件还可用于定期向其他节点发送客户端与服务器的映射表,以供其他节点变为主节点时使用;如主节点定期向其它节点发送客户端-服务器的映射表;非主节点接收到主节点发送的映射表后,保存到内存中,供以后本机变为主节点时使用。当服务节点因故障不能提供服务时,需要将连接到它上的客户端转移到其它节点上去。具体地,如果是主节点故障,则重新进行主节点选举,详见上述主节点选举说明。如果主节点检测到某节点服务不可用后,则根据负载均衡调度算法,主动向连接到该节点的客户端发送ARP响应,让这些客户端透明的转换到集群内的其它节点上。上述检测均由负载均衡器组件执行。具体地,所述主节点中的负载均衡器组件还可用于检测所述服务节点;在所述服务节点不可用的情况下,再次根据负载均衡调度算法选择所述集群中的另一个节点,作为新服务节点;所述主节点还用于将包含有所述新服务节点的MAC地址的ARP响应返回给所述客户端。本发明实施例提供的负载均衡系统还可包括管理节点。如图7所示,管理节点71通过交换机与所述集群中各节点的负载均衡器组件72相连,用于设置主节点,并用于在所述主节点故障的情况下,根据所述集群中其余节点的优先级重新设置主节点,或者具体用于将优先级最高的节点设置为新主节点,或者具体用于在所述优先级最高的节点为多个情况下,将启动时间最短的节点设置为新主节点。本领域普通技术人员可以理解实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。最后应说明的是以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。权利要求1.一种负载均衡方法,其特征在于,包括节点接收客户端广播的ARP请求,所述节点位于集群中,所述集群由网络中的多个服务器组成,所述服务器分为主节点和从节点,所述主节点为所述集群中优先级最高的节占.I—/、、、当所述节点为主节点时,根据负载均衡调度算法从所述集群中选择节点,作为所述客户端的服务节点;所述主节点将包含有所述客户端的服务节点的MAC地址的ARP响应返回给所述客户端,以使所述客户端对所述客户端的服务节点发起业务请求。2.根据权利要求1所述的负载均衡方法,其特征在于,还包括所述集群中的所有节点定期向其他节点发送用于告知本节点状态的消息。3.根据权利要求1所述的负载均衡方法,其特征在于,还包括所述主节点定期向其他节点发送客户端与服务器的映射表,以供其他节点变为主节点时使用。4.根据权利要求1所述的负载均衡方法,其特征在于,还包括所述主节点检测所述服务节点;在所述服务节点不可用的情况下,根据负载均衡调度算法选择所述集群中的另一个节点,作为新服务节点;将包含有所述新服务节点的MAC地址的ARP响应返回给所述客户端,以使所述客户端对所述新服务节点发起业务请求。5.根据权利要求1-4任一项所述的负载均衡方法,其特征在于,所述主节点故障的情况下,根据所述集群中其余节点的优先级重新设置主节点。6.根据权利要求5所述的负载均衡方法,其特征在于,根据所述集群中其余节点的优先级重新设置主节点包括将优先级最高的节点设置为新主节点。7.—种负载均衡系统,其特征在于,包括由网络中的多个服务器组成的集群,所述集群中的服务器分为主节点和从节点,均设置有负载均衡器组件;所述主节点为所述集群中优先级最高的节点;所述主节点中的负载均衡器组件用于根据负载均衡调度算法从所述集群中选择节点,作为所述客户端的服务节点;所述主节点用于将包含有所述客户端的服务节点的MAC地址的ARP响应返回给所述客户端,以使所述客户端对所述客户端的服务节点发起业务请求。8.根据权利要求7所述的负载均衡系统,其特征在于,所述主节点中的负载均衡器组件还用于定期向其他节点发送客户端与服务器的映射表,以供其他节点变为主节点时使用;所述节点中的负载均衡器组件还用于定期向其他节点发送用于告知本节点状态的消息。9.根据权利要求7所述的负载均衡系统,其特征在于,所述主节点中的负载均衡器组件还用于检测所述服务节点;在所述服务节点不可用的情况下,根据负载均衡调度算法选择所述集群中的另一个节点,作为新服务节点;所述主节点还用于将包含有所述新服务节点的MAC地址的ARP响应返回给所述客户端,以使所述客户端对所述新服务节点发起业务请求。10.根据权利要求7-9任一项所述的负载均衡系统,其特征在于,还包括管理节点,与所述集群中各节点的负载均衡器组件相连,用于设置主节点,并用于在所述主节点故障的情况下,根据所述集群中其余节点的优先级重新设置主节点,或者具体用于将优先级最高的节点设置为新主节点,或者具体用于在所述优先级最高的节点为多个情况下,将启动时间最短的节点设置为新主节点。全文摘要本发明涉及一种负载均衡方法及负载均衡系统,方法包括节点接收客户端广播的ARP请求,所述节点位于集群中,所述集群由网络中的多个服务器组成,所述服务器分为主节点和从节点,所述主节点为所述集群中优先级最高的节点;当所述节点为主节点时,根据负载均衡调度算法从所述集群中选择节点,作为所述客户端的服务节点;主节点将包含有客户端的服务节点的MAC地址的ARP响应返回给所述客户端,以使客户端对所述客户端的服务节点发起业务请求。通过服务器集群中的主节点选择一个服务器作为客户端的服务节点,当主节点故障时,服务器集群中还可产生新的主节点进行负载均衡的分配,解决了现有负载分配依赖负载均衡器进行分配所带来的瓶颈问题。文档编号H04L12/56GK102025630SQ201010588578公开日2011年4月20日申请日期2010年12月14日优先权日2010年12月14日发明者邓明申请人:成都市华为赛门铁克科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1