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

文档序号:7744244阅读:110来源:国知局
专利名称:负载均衡的方法、设备及系统的制作方法
技术领域
本发明涉及计算机技术领域,特别涉及一种负载均衡的方法、设备及系统。
背景技术
在为用户提供网络服务时,为了能够提供更多更快速的服务,经常 采用服务器集 群为用户提供服务。服务器集群对外共用同一个虚拟IP地址,在外部用户看来,就相当于 是一台服务器为其提供服务。为避免各服务器承担的负载不均衡,需要采用负载均衡设备 对服务器集群进行负载的均衡处理。现有技术中的负载均衡设备多为Linux虚拟服务器(Linux Virtual Server,以下 简称LVS),在现有技术的方案中,在LVS服务器中建立了服务器的连接映射表,网络中的上 下行流量都经过LVS服务器。LVS服务器接收到客户端发送的服务请求后,选择服务器集 群中负载较小的服务器,将客户端发送的服务请求数据包中介质访问控制(Media Access Control,以下简称MAC)地址改写为该负载较小的服务器的MAC地址,并将服务请求发送到 该负载较小的服务器。LVS服务器能够根据服务器集群中各服务器的负载状态,将服务请求 转发到负载较小的服务器上,由此实现负载均衡。在对现有技术进行研究后,发明人发现,现有技术的方案中,在一些服务请求数量 较大的网络中,所有的服务请求的数据都会经过负载均衡设备,当服务请求数量超过负载 均衡设备的处理能力时,负载均衡设备不能及时地将所有服务请求转发到服务器上,此时 负载均衡设备会成为瓶颈,使得响应时间较长,导致系统的负载均衡用户体验降低。

发明内容
本发明实施例提供了一种负载均衡的方法、设备及系统,用以降低了流过负载均 衡设备的信息流量,从而提高了负载均衡的用户体验。本发明实施例提供了一种负载均衡的方法,包括获取客户端发送的地址解析协议ARP请求;根据各服务器的负载状态通过预设的负载均衡算法计算得到服务器集群中负载 小于预设门限值的第一服务器,并获取所述第一服务器的介质访问控制MAC地址;向所述客户端发送ARP应答信息,所述ARP应答信息中包括所述第一服务器的MAC 地址。本发明实施例还提供了一种负载均衡的设备,包括地址解析协议ARP获取模块,用于获取客户端发送的ARP请求;均衡处理模块,用于根据各服务器的负载状态通过预设的负载均衡算法计算得到 服务器集群中负载小于预设门限值的第一服务器,并获取所述第一服务器的介质访问控制 MAC地址;发送模块,用于向所述客户端发送ARP应答信息,所述ARP应答信息中包括所述第 一服务器的MAC地址。
本发明实施例还提供了一种负载均衡的系统,包括上述的负载均衡设备,以及由 至少两台服务器组成的服务器集群。本发明实施例通过获取客户端发送的ARP请求,并采用负载均衡算法为客户端选 择负载较小的服务器,实现了服务器的负载均衡,通过处理ARP请求,降低了流过负载均衡 设备的信息流量,减少了出现瓶颈的可能性以及响应时间,提高了服务请求处理的速度,进 而提高了负载均衡的用户体验。


为了更清楚地说明本发明实施例中的技术方案,下面将对实施例中所需要使用的 附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领 域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附 图。图Ia为本发明第一实施例提供的负载均衡的方法流程图;图Ib为本发明第一实施例提供的负载均衡方法的应用场景示意图;图2为本发明第二实施例提供的负载均衡的设备的结构示意图;图3为本发明第三实施例提供的负载均衡系统的结构示意图。
具体实施例方式为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例 中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是 本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员 在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。参见图Ia为本发明第一实施例提供的负载均衡的方法流程图,在客户端向 服务器集群进行服务请求时,通过获取用户发送的地址解析协议(AddressResolution Protocol,以下简称ARP)请求,采用ARP欺骗的方式,向用户发送负载小于预设门限值的服 务器的MAC地址,使得客户端将服务请求发送到该负载较小的服务器,由此达到均衡服务 器负载的目的。本实施例负载均衡的方法的执行主体可以为健康检测(Health Check,以下 简称HC)服务器,方法包括以下步骤步骤11、获取客户端发送的ARP请求。客户端在向服务器集群进行服务请求时,先发送ARP请求以获取为自身提供服务 的服务器的MAC地址,然后根据该MAC地址向该服务器发送服务请求,由服务器进行相关的 服务请求处理。在本实施例中,通过设置一个HC设备,获取客户端发送的ARP请求。参见图Ib为 本实施例负载均衡方法的应用场景示意图,客户端和服务器集群通过交换机进行数据的转 发,该HC设备与该交换机连接,在该HC设备中预先存储了服务器集群中的所有服务器的 MAC地址,并且该服务器集群的虚拟IP地址也配置到该HC设备的非物理端口上,其中,HC 设备的非物理端口包括如软件端口或协议端口等非物理意义上的端口,将服务器集群的虚 拟IP地址配置到该HC设备的非物理端口上,便于进行软件维护。因此,当客户端向服务器集群进行服务请求时,由于发送的ARP请求使用的是该虚拟IP地址,该ARP请求经过交换机后会转发到该HC设备上。该HC设备仅获取用户的ARP请求,并不处理客户端发送的服务请求的数据。现有 技术中的负载均衡器不仅处理客户端的ARP请求,同时客户端的服务请求数据也流经负载 均衡器。因此,对于相同的配置,本实施例中的HC设备在单位时间内能够比现有技术中的 负载均衡器处理更多的服务请求。步骤12、根据各服务器的负载状态通过预设的负载均衡算法计算得到服务器集群 中负载小于预设门限值的第一服务器,并获取该第一服务器的MAC地址。
在本实施例中,该HC设备中预先存储了服务器集群中的所有服务器的MAC地址, 并可以检测各服务器的负载状态,如服务器正在处理的服务请求数量等。在接收到客户端 发送的ARP请求后,获知该客户端需要向服务器集群请求服务。该HC设备会根据预设的负 载均衡算法,计算服务器集群中负载小于预设门限值的第一服务器,其中,预设的门限值可 以根据具体的应用需求进行预先设置,当HC设备计算出多个服务器的负载均小于该门限 值时,可以选择其中负载最小的服务器,也可以采用随机选择的方式选择出其中的一个服 务器,并获取该服务器的MAC地址。HC设备计算服务器集群中负载小于预设门限值的第一服务器的方法可以如下 HC设备定期检测获取各服务器的负载状态数据,如以3秒为间隔检测获取服务器的负载状 态数据,负载状态数据可以包括客户端请求量,占用的网络带宽等数据。根据服务器的各项 负载状态数据,采用溢出队列算法计算得到服务器集群中负载小于预设门限值的所述第一 服务器。采用的溢出队列算法进行计算的方法如下预先分配每项负载状态数据的权值, 使用加权计算的方式得到各服务器的负载状态的加权值,将该加权值作为衡量服务器负载 的依据,并可以预设一个门限值,从中选出负载小于预设门限值的服务器。其中,各项负载 状态数据的权值可以根据具体的应用场景进行预先设置,如在客户端较多的网络中,需要 重点考虑每个服务器上的客户端请求量,则可以将负载状态数据中客户端请求量的权值设 置的较大;在对网络的数据传输质量要求较高的场景中,需要重点考虑服务器被占用的网 络带宽,则可以将负载状态数据中占用的网络带宽的权值设置的较大。步骤13、向该客户端发送ARP应答信息,该ARP应答信息中包括该第一服务器的 MAC地址。HC服务器向客户端返回ARP应答信息,在该ARP应答信息中附带第一服务器的 MAC地址,客户端收到该ARP应答信息后,就可以根据该MAC地址,将服务请求发送到第一服 务器上进行服务请求,由第一服务器处理客户端的服务请求。由于该第一服务器是采用了 预设的负载均衡算法选择出来的负载小于预设门限值的服务器,因此就使得服务器集群的 负载分流到负载较小的服务器上,实现了负载均衡。通过上述方法可知,本实施例中,由于采用了 HC设备截取ARP报文的方式进行负 载均衡,相比现有技术中的负载均衡方案,减少了出现瓶颈的可能性以及响应时间。例如, 现有技术中的负载均衡器由于需要同时处理ARP报文和服务请求数据,其处理速度的上限 是1000次/秒的服务请求,而本实施例中的HC设备由于只处理ARP请求,其能处理的客户 端服务请求会远大于1000次/秒,因此减少了出现瓶颈的可能性以及响应时间,提高了系 统的负载均衡用户体验。
需要说明的是,本实施例中,HC设备通过截取客户端的ARP报文进行负载均衡,因此客户端与服务器集群之间应满足ARP报文可互达的条件,为更好的进行负载均衡,可以 将客户端和服务器集群中的服务器配置在同一个网段中,以使得HC设备能够更快捷的截 获ARP报文,更好的进行负载均衡。本实施例通过获取客户端发送的ARP请求,并采用负载均衡算法为客户端选择负 载较小的服务器,实现了服务器的负载均衡,通过处理ARP请求,提高了服务请求处理的速 度,减少了出现瓶颈的可能性以及响应时间,提高了负载均衡的用户体验,同时方案简单易 于实现,具有很高的实用性。参见图2为本发明第二实施例提供的负载均衡的设备的结构示意图,该负载均衡 设备可以为HC设备,服务器集群的虚拟IP地址配置在该负载均衡设备上;该负载均衡设备 包括ARP获取模块21、均衡处理模块22和发送模块23。ARP获取模块21,用于获取客户端发送的ARP请求;均衡处理模块22,用于根据各服务器的负载状态通过预设的负载均衡算法计算得 到服务器集群中负载小于预设门限值的第一服务器,并获取该第一服务器的MAC地址;需要说明的是,当计算出多个服务器的负载均小于该门限值时,可以选择其中负 载最小的服务器,也可以采用随机选择的方式选择出其中的一个服务器。发送模块23,用于向该客户端发送ARP应答信息,该ARP应答信息中包括该第一服 务器的MAC地址。客户端收到该ARP应答信息后,就可以根据ARP应答信息中的MAC地址,将服务请 求发送到第一服务器上进行服务请求。由于该第一服务器是采用了预设的负载均衡算法选 择出来的负载小于预设门限值的服务器,因此就使得服务器集群的负载分流到负载小于预 设门限值的服务器上,实现了负载均衡。在本实施例中,负载均衡设备先要获取服务器集群中各服务器的负载状态,再根 据预设的负载均衡算法进行负载均衡处理,预设的负载均衡算法可以为加权计算的方法。该均衡处理模块22,包括检测单元22a,用于检测获取服务器集群中的各服务器的各项负载状态的数据;均衡单元22b,用于根据服务器的各项负载状态数据,采用溢出队列算法计算得到 服务器集群中负载小于预设门限值的所述第一服务器。其中,溢出队列算法的基本思想是为各负载状态数据分配权值,采用加权计算的 方式计算负载,即均衡单元22b,用于根据服务器的各项负载状态数据,以及预设的各项负 载状态数据的权值,通过加权计算的方式得到各服务器的负载,并选出负载小于预设门限 值的第一服务器。本实施例的负载均衡设备通过获取客户端发送的ARP请求,并采用负载均衡算法 为客户端选择负载较小的服务器,实现了服务器的负载均衡,通过处理ARP请求,提高了服 务请求处理的速度,减少了负载均衡设备出现瓶颈的可能性,提高了负载均衡的用户体验。参见图3为本发明第三实施例提供的负载均衡的系统的结构示意图,该负载均衡 系统包括负载均衡设备31,以及由至少两台服务器32组成的服务器集群,该服务器集群 的虚拟IP地址配置在负载均衡设备31上;该负载均衡设备31,用于获取客户端发送的ARP请求;根据各服务器32的负载状态通过预设的负载均衡算法计算得到服务器集群中负载小于预设门限值的第一服务器,并 获取该第一服务器的MAC地址;向该客户端发送ARP应答信息,该ARP应答信息中包括该第 一服务器的MAC地址。需要说明的是,当计算出多个服务器的负载均小于该门限值时,可以选择其中负 载最小的服务器,也可以采用随机选择的方式选择出其中的一个服务器。客户端收到该ARP应答信息后,就可以根据ARP应答信息中的MAC地址,将服务请 求发送到第一服务器上进行服务请求。由于该第一服务器是采用了预设的负载均衡算法选 择出来的负载小于预设门限值的服务器,因此就使得服务器集群的负载分流到负载小于预 设门限值的服务器上,实现了负载均衡。在本实施例中,负载均衡设备先要获取服务器集群中各服务器32的负载状态,再 根据预设的负载均衡算法进行负载均衡处理,预设的负载均衡算法可以为加权计算的方 法。此时,该负载均衡设备31,用于获取服务器集群中的各服务器32的各项负载状态 的数据;根据服务器32的各项负载状态数据,以及预设的各项负载状态数据的权值,采用 加权计算的方式得到各服务器32的负载,并选出负载小于预设门限值的第一服务器。然后 向该客户端发送ARP应答信息,在该ARP应答信息中附带第一服务器的MAC地址。
在本实施例中,为提高负载均衡的用户体验,可以将客户端与服务器集群中的服 务器32配置在同一网段中。本实施例通过获取客户端发送的ARP请求,并采用负载均衡算法为客户端选择负 载小于预设门限值的服务器,实现了服务器的负载均衡,由于负载均衡设备仅处理ARP请 求,提高了服务请求处理的速度,减少了负载均衡设备出现瓶颈的可能性,提高了负载均衡 的用户体验。本领域普通技术人员可以理解附图只是一个实施例的示意图,附图中的模块或 流程并不一定是实施本发明所必须的。本领域普通技术人员可以理解实施例中的装置中的模块可以按照实施例描述分 布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上 述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。本领域普通技术人员可以理解实现上述方法实施例的全部或部分步骤可以通过 程序指令相关的硬件来完成,前述程序可以存储于一计算机可读取存储介质中,该程序在 执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括R0M、RAM、磁碟或者光 盘等各种可以存储程序代码的介质。最后应说明的是以上实施例仅用以说明本发明的技术方案,而非对其限制;尽 管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解其依然 可以对前述实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换; 而这些修改或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围。
权利要求
一种负载均衡的方法,其特征在于,包括获取客户端发送的地址解析协议ARP请求;根据各服务器的负载状态通过预设的负载均衡算法计算得到服务器集群中负载小于预设门限值的第一服务器,并获取所述第一服务器的介质访问控制MAC地址;向所述客户端发送ARP应答信息,所述ARP应答信息中包括所述第一服务器的MAC地址。
2.根据权利要求1所述的负载均衡的方法,其特征在于,根据各服务器的负载状态通 过预设的负载均衡算法计算得到服务器集群中负载小于预设门限值的第一服务器,包括获取服务器集群中的各服务器的各项负载状态的数据;根据所述服务器的各项负载状态数据,采用溢出队列算法计算得到服务器集群中负载 小于预设门限值的所述第一服务器。
3.根据权利要求2所述的负载均衡的方法,其特征在于,所述溢出队列算法包括根据所述服务器的各项负载状态数据,以及预设的所述各项负载状态数据的权值,通 过加权计算的方式得到所述各服务器的负载,并选出负载小于预设门限值的所述第一服务
4.根据权利要求1所述的负载均衡的方法,其特征在于,客户端发送的所述ARP请求中 包含所述服务器集群的虚拟IP地址;相应的,所述方法还包括在非物理端口上配置所述服务器集群的虚拟IP地址,以接收所述客户端发送的包含 所述服务器集群的虚拟IP地址的ARP请求。
5.一种负载均衡的设备,其特征在于,包括地址解析协议ARP获取模块,用于获取客户端发送的ARP请求;均衡处理模块,用于根据各服务器的负载状态通过预设的负载均衡算法计算得到服务 器集群中负载小于预设门限值的第一服务器,并获取所述第一服务器的介质访问控制MAC 地址;发送模块,用于向所述客户端发送ARP应答信息,所述ARP应答信息中包括所述第一服 务器的MAC地址。
6.根据权利要求5所述的负载均衡的设备,其特征在于,所述均衡处理模块,包括检测单元,用于检测获取服务器集群中的各服务器的各项负载状态的数据;均衡单元,用于根据所述服务器的各项负载状态数据,采用溢出队列算法计算得到服 务器集群中负载小于预设门限值的所述第一服务器。
7.根据权利要求6所述的负载均衡的设备,其特征在于,所述均衡单元,用于根据所述服务器的各项负载状态数据,以及预设的所述各项负载 状态数据的权值,通过加权计算的方式得到所述各服务器的负载,并选出负载小于预设门 限值的所述第一服务器。
8.根据权利要求5所述的负载均衡的设备,其特征在于,客户端发送的所述ARP请求中 包含所述服务器集群的虚拟IP地址;所述服务器集群的虚拟IP地址配置在所述负载均衡 设备的非物理端口上。
9.一种负载均衡的系统,其特征在于,包括权利要求5-8中任一所述的负载均衡的设 备,以及由至少两台服务器组成的服务器集群。
全文摘要
本发明实施例公开了一种负载均衡的方法、设备及系统,所述方法包括获取客户端发送的地址解析协议ARP请求;根据各服务器的负载状态通过预设的负载均衡算法计算得到服务器集群中负载小于预设门限值的第一服务器,并获取所述第一服务器的介质访问控制MAC地址;向所述客户端发送ARP应答信息,所述ARP应答信息中包括所述第一服务器的MAC地址。本发明实施例通过获取客户端发送的ARP请求,并采用负载均衡算法为客户端选择负载较小的服务器,实现了服务器的负载均衡,通过处理ARP请求,提高了服务请求处理的速度,减少了出现瓶颈的可能性以及响应时间,提高了负载均衡的用户体验。
文档编号H04L12/56GK101815033SQ201010130378
公开日2010年8月25日 申请日期2010年3月12日 优先权日2010年3月12日
发明者唐猛 申请人:成都市华为赛门铁克科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1