CN108234637A - 一种基于zookeeper实现负载均衡的方法和系统 - Google Patents
一种基于zookeeper实现负载均衡的方法和系统 Download PDFInfo
- Publication number
- CN108234637A CN108234637A CN201711484805.8A CN201711484805A CN108234637A CN 108234637 A CN108234637 A CN 108234637A CN 201711484805 A CN201711484805 A CN 201711484805A CN 108234637 A CN108234637 A CN 108234637A
- Authority
- CN
- China
- Prior art keywords
- overload
- node
- server node
- load capacity
- underloading
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/1008—Server selection for load balancing based on parameters of servers, e.g. available memory or workload
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/1025—Dynamic adaptation of the criteria on which the server selection is based
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1029—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers using data related to the state of servers by a load balancer
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Computer And Data Communications (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种基于zookeeper实现负载均衡的方法和装置,包括:获取zookeeper集群中每个服务器节点的负载量;根据负载量和满负载量的相对大小将所有服务器节点分为过载服务器节点和轻载服务器节点,满负载量为服务器节点可处理的最大负载量;按过载量由大到小的顺序依次对过载服务器节点进行过载分配,将过载部分分配给轻载服务器节点,并在完成一个过载服务器节点的过载分配后,更新所有服务器节点的负载量然后进行下一个过载服务器节点的过载分配,全部过载服务器节点的过载量均为零或全部轻载服务器节点的可接受负载量均为零。解决了加权轮询法不能实时地根据服务器节点不同时间段的不同处理能力及负载量将负载调配均衡的技术问题。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种基于zookeeper实现负载均衡的方法和系统。
背景技术
随着企业业务的不断扩大,技术架构的复杂度也越来越高,也涉及到越来越多的系统。而为了保证每个系统可以正常运行,需要对这些系统进行测试。
最初,是通过自动化测试框架对运行在单机上的系统进行测试,但随着被测系统的规模越来越大,单机运行造成的内存消耗也越来越多,测试人员在开启测试后会出现个人电脑端操作延迟的现象,电脑反应灵敏度下降,以及测试时间也越来越长,不得不等待一段时间才能看到整体测试结果。
现在出现了分布式系统,可以较好地解决上述问题,通过将单台服务器节点的负载量均衡分配到多台服务器节点进行多进程处理,以大幅度提高计算效率。而对于分布式系统,需要一定的协调机制使系统在例如节点增加、删除一个或多个节点的情况下仍具有较高的可靠性。Zookeeper常被用于构建这种协调机制,提供的功能包括:配置维护、名字服务、分布式同步和组服务等。
利用Zookeeper对多台服务器节点进行负载均衡,最常用的方法是加权轮询法,该方法根据服务器节点的处理能力来构建负载均衡的优先级队列,即在负载开始分配时考虑每个服务器节点的处理能力,以均衡分配负载,但是分布式环境中服务器节点的负载量随时在变,加权轮询法并不能实时地根据服务器节点不同时间段的不同处理能力及负载量,将负载调配均衡。
发明内容
本发明提供了一种基于zookeeper实现负载均衡的方法和装置,解决了加权轮询法不能实时地根据服务器节点不同时间段的不同处理能力及负载量将负载调配均衡的技术问题。
本发明提供了一种基于zookeeper实现负载均衡的方法,包括:
获取zookeeper集群中每个服务器节点的负载量;
根据所述负载量和满负载量的相对大小将所有服务器节点分为过载服务器节点和轻载服务器节点,所述满负载量为所述服务器节点可处理的最大负载量;
按过载量由大到小的顺序依次对过载服务器节点进行过载分配,将过载部分分配给所述轻载服务器节点,并在完成一个过载服务器节点的过载分配后,更新所有服务器节点的负载量然后进行下一个过载服务器节点的过载分配,全部所述过载服务器节点的过载量均为零或全部所述轻载服务器节点的可接受负载量均为零。
优选地,
在对一个过载服务器节点进行过载分配的过程中,将当前过载服务器节点的过载量与所有所述轻载服务器节点中的单机最大可接受负载量比较;
若当前过载服务器节点的过载量大于所述单机最大可接受负载量,则将当前过载服务器节点的过载部分按可接受负载量由大到小的顺序依次分配给多个所述轻载服务器节点,全部所述轻载服务器节点的可接受负载量均为零时分配停止;
若当前过载服务器节点的过载量不大于所述单机最大可接受负载量,则将当前过载服务器节点的过载部分分配给可接受负载量不小于当前过载服务器节点过载量的所述轻载服务器节点。
优选地,
若当前过载服务器节点的过载量不大于所述单机最大可接受负载量,则将当前过载服务器节点的过载部分分配给可接受负载量不小于当前过载服务器节点过载量的所述轻载服务器节点具体包括:
若当前过载服务器节点的过载量不大于所述单机最大可接受负载量,则搜索是否存在可接受负载量等于当前过载服务器节点过载量的轻载服务器节点,若存在,则将当前过载服务器节点的过载部分分配给可接受负载量等于当前过载服务器节点过载量的轻载服务器节点,若不存在,则将当前过载服务器节点的过载部分分配给可接受负载量最大的轻载服务器节点。
优选地,
所述的基于zookeeper实现负载均衡的方法,还包括:
若检测到zookeeper集群中一个所述服务器节点所在的进程崩溃,则当进程崩溃的所述服务器节点为轻载服务器节点时,将进程崩溃的轻载服务器节点的可接受负载量更新为零;
当进程崩溃的所述服务器节点为过载服务器节点时,将进程崩溃的过载服务器节点的过载量更新为零。
优选地,
所述的基于zookeeper实现负载均衡的方法,还包括:
当所述轻载服务器节点所在的进程在崩溃后又恢复正常时,将进程崩溃后又恢复正常的所述轻载服务器节点的可接受负载量更新为实际可接受负载量;
当所述过载服务器节点所在的进程在崩溃后又恢复正常时,将进程崩溃后又恢复正常的所述过载服务器节点的过载量更新为实际过载量。
本发明提供了一种基于zookeeper实现负载均衡的装置,包括:
获取单元,用于获取zookeeper集群中每个服务器节点的负载量;
分类单元,用于根据所述负载量和满负载量的相对大小将所有服务器节点分为过载服务器节点和轻载服务器节点,所述满负载量为所述服务器节点可处理的最大负载量;
分配单元,用于按过载量由大到小的顺序依次对过载服务器节点进行过载分配,将过载部分分配给所述轻载服务器节点,并在完成一个过载服务器节点的过载分配后,更新所有服务器节点的负载量然后进行下一个过载服务器节点的过载分配,全部所述过载服务器节点的过载量均为零或全部所述轻载服务器节点的可接受负载量均为零。
优选地,
所述分配单元包括比较子单元、第一分配子单元和第二分配子单元;
所述比较子单元,用于在对一个过载服务器节点进行过载分配的过程中,将当前过载服务器节点的过载量与所有所述轻载服务器节点中的单机最大可接受负载量比较;
所述第一分配子单元,用于当当前过载服务器节点的过载量大于所述单机最大可接受负载量时,将当前过载服务器节点的过载部分按可接受负载量由大到小的顺序依次分配给多个所述轻载服务器节点,全部所述轻载服务器节点的可接受负载量均为零时分配停止;
所述第二分配子单元,用于当当前过载服务器节点的过载量不大于所述单机最大可接受负载量时,将当前过载服务器节点的过载部分分配给可接受负载量不小于当前过载服务器节点过载量的所述轻载服务器节点。
优选地,
所述第二分配子单元,具体用于当当前过载服务器节点的过载量不大于所述单机最大可接受负载量时,搜索是否存在可接受负载量等于当前过载服务器节点过载量的轻载服务器节点,若存在,则将当前过载服务器节点的过载部分分配给可接受负载量等于当前过载服务器节点过载量的轻载服务器节点,若不存在,则将当前过载服务器节点的过载部分分配给可接受负载量最大的轻载服务器节点。
优选地,
所述的基于zookeeper实现负载均衡的装置,还包括:
异常处理单元,用于将进程崩溃的轻载服务器节点的可接受负载量更新为零,将进程崩溃的过载服务器节点的过载量更新为零。
优选地,
所述异常处理单元,还用于将进程崩溃后又恢复正常的所述轻载服务器节点的可接受负载量更新为实际可接受负载量,将进程崩溃后又恢复正常的所述过载服务器节点的过载量更新为实际过载量。
从以上技术方案可以看出,本发明具有以下优点:
获取zookeeper集群中每个服务器节点的负载量;根据所述负载量和满负载量的相对大小将所有服务器节点分为过载服务器节点和轻载服务器节点,所述满负载量为所述服务器节点可处理的最大负载量;按过载量由大到小的顺序依次对过载服务器节点进行过载分配,将过载部分分配给所述轻载服务器节点,并在完成一个过载服务器节点的过载分配后,更新所有服务器节点的负载量然后进行下一个过载服务器节点的过载分配,全部所述过载服务器节点的过载量均为零或全部所述轻载服务器节点的可接受负载量均为零;从而可以实时地根据服务器节点不同时间段的不同处理能力及负载量将负载调配均衡。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附图。
图1为本发明提供的一种基于zookeeper实现负载均衡的方法的第一实施例的流程示意图;
图2为本发明提供的一种基于zookeeper实现负载均衡的方法的第二实施例的流程示意图;
图3为本发明对一个过载服务器节点进行过载分配的一个实施例的流程示意图。
图4为本发明提供的一种基于zookeeper实现负载均衡的装置的第一实施例的流程示意图;
图5为本发明提供的一种基于zookeeper实现负载均衡的装置的第二实施例的流程示意图。
具体实施方式
本发明实施例提供了一种基于zookeeper实现负载均衡的方法和装置,解决了加权轮询法不能实时地根据服务器不同时间段的不同处理能力及负载量将负载调配均衡的技术问题。
为了便于理解本发明的技术方案,特作以下说明:
利用Zookeeper对分布式系统进行协调控制之前,需要在zookeeper集群中注册服务器节点,从而可以通过监听的方式对分布式系统中的多个服务器节点进行管理。
为使得本发明的发明目的、特征、优点能够更加的明显和易懂,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,下面所描述的实施例仅仅是本发明一部分实施例,而非全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
请参阅图1,本发明提供的一种基于zookeeper实现负载均衡的方法的第一实施例的流程示意图。
本发明提供了一种基于zookeeper实现负载均衡的方法的第一实施例,包括:
步骤101,获取zookeeper集群中每个服务器节点的负载量。
具体地,可以通过getChildren()方法获取分布式系统的服务器节点列表,然后计算每个服务器节点的负载量。
步骤102,根据负载量和满负载量的相对大小将所有服务器节点分为过载服务器节点和轻载服务器节点,满负载量为服务器节点可处理的最大负载量。
例如在分布式系统中有三个服务器节点,且满载负载量均为100,一个服务器节点的负载量为120,一个服务器节点的的负载量为80,另一个服务器节点的负载量为100,那么负载量为120的服务器节点则为过载服务器节点,负载量为80的服务器节点则为轻载服务器节点,而负载量为100的服务器节点可以作为过载服务器节点,此时过载量为0,也可以作为轻载服务器节点,此时可接受负载量为0。
需要说明的是,服务器节点不同,对应的满负载量也不同。
步骤103,按过载量由大到小的顺序依次对过载服务器节点进行过载分配,将过载部分分配给轻载服务器节点,并在完成一个过载服务器节点的过载分配后,更新所有服务器节点的负载量然后进行下一个过载服务器节点的过载分配,直到全部过载服务器节点的过载量均为零或全部轻载服务器节点的可接受负载量均为零。
当全部过载服务器节点的过载量均为零时,不存在需要过载分配的服务器节点;当全部轻载服务器节点的可接受负载量均为零时,不存在可以接受过载分配的服务器节点。
本发明可以实时地根据服务器节点不同时间段的不同处理能力及负载量将负载调配均衡,从而提高处理效率,使得处理速度不受硬件环境的限制。
请参阅图2,本发明提供的一种基于zookeeper实现负载均衡的方法的第二实施例的流程示意图。
本发明提供了一种基于zookeeper实现负载均衡的方法的第二实施例,包括:
步骤201,获取zookeeper集群中每个服务器节点的负载量。
步骤202,根据负载量和满负载量的相对大小将所有服务器节点分为过载服务器节点和轻载服务器节点,满负载量为服务器节点可处理的最大负载量。
步骤203,按过载量由大到小的顺序依次对过载服务器节点进行过载分配,将过载部分分配给轻载服务器节点,并在完成一个过载服务器节点的过载分配后,更新所有服务器节点的负载量然后进行下一个过载服务器节点的过载分配,直到全部过载服务器节点的过载量均为零或全部轻载服务器节点的可接受负载量均为零。
步骤201、步骤202和步骤203分别与本申请第一实施例中步骤101、步骤102、步骤103的内容相同,具体描述可以参见第一实施例步骤101、步骤102、步骤103的内容,在此不再赘述。
步骤204,若检测到zookeeper集群中一个服务器节点所在的进程崩溃,则当进程崩溃的服务器节点为轻载服务器节点时,将进程崩溃的轻载服务器节点的可接受负载量更新为零;
当进程崩溃的服务器节点为过载服务器节点时,将进程崩溃的过载服务器节点的过载量更新为零。
例如,服务器节点所在的进程因网络原因或服务器节点自身原因崩溃,也可能是删除了一个服务器节点,则需要及时更新该服务器节点的负载量,以保证负载分配过程可以正常进行。
步骤205,当轻载服务器节点所在的进程在崩溃后又恢复正常时,将进程崩溃后又恢复正常的轻载服务器节点的可接受负载量更新为实际可接受负载量;
当过载服务器节点所在的进程在崩溃后又恢复正常时,将进程崩溃后又恢复正常的过载服务器节点的过载量更新为实际过载量。
例如,服务器节点所在的进程因网络原因崩溃,但网络之后又恢复正常,则进程也恢复正常,或者新增加了一个服务器节点,则需要及时更新该服务器节点的负载量,以保证负载分配过程可以正常进行,需要说明的是,如果恢复时间很短,则可以理解为进程暂时的延迟。
需要说明的是,在负载分配过程中需要对临时的进程崩溃和恢复进行及时处理,所以图2中的箭头是表示步骤204和步骤205均是在步骤203中进行的,而不是表示步骤进行的先后顺顺序。
请参阅图3,本发明对一个过载服务器节点进行过载分配的一个实施例的流程示意图。
步骤301,将当前过载服务器节点的过载量与所有轻载服务器节点中的单机最大可接受负载量比较。
步骤302,若当前过载服务器节点的过载量大于单机最大可接受负载量,则将当前过载服务器节点的过载部分按可接受负载量由大到小的顺序依次分配给多个轻载服务器节点,全部轻载服务器节点的可接受负载量均为零时分配停止。
例如,一个过载服务器节点的过载量为100,所有轻载服务器节点可接受负载量的总和为80,当分配到所有轻载服务器节点满载时,分配停止。
步骤303,若当前过载服务器节点的过载量不大于单机最大可接受负载量,则将当前过载服务器节点的过载部分分配给可接受负载量不小于当前过载服务器节点过载量的轻载服务器节点。
需要说明的是,这种将一个过载服务器节点的过载部分一次性地分配给一个可以接受该过在部分的轻载服务器节点的方法,只需要该过载服务器节点向该轻载服务器节点发送一次负载迁移消息即可,而将一个过载服务器节点的过载部分分别分配给多个轻载服务器节点,则需要该过载服务器节点分别向多个轻载服务器节点各发一条负载迁移消息,所以步骤303的分配方法可以使得被分配负载的过载服务器节点发送的消息数最少。
步骤303具体可以包括:
若当前过载服务器节点的过载量不大于单机最大可接受负载量,则搜索是否存在可接受负载量等于当前过载服务器节点过载量的轻载服务器节点,若存在,则将当前过载服务器节点的过载部分分配给可接受负载量等于当前过载服务器节点过载量的轻载服务器节点,若不存在,则将当前过载服务器节点的过载部分分配给可接受负载量最大的轻载服务器节点。
请参阅图4,本发明提供的一种基于zookeeper实现负载均衡的装置的第一实施例的流程示意图。
本发明提供了一种基于zookeeper实现负载均衡的装置的第一实施例,包括:
获取单元401,用于获取zookeeper集群中每个服务器节点的负载量。
分类单元402,用于根据负载量和满负载量的相对大小将所有服务器节点分为过载服务器节点和轻载服务器节点,满负载量为服务器节点可处理的最大负载量。
分配单元403,用于按过载量由大到小的顺序依次对过载服务器节点进行过载分配,将过载部分分配给轻载服务器节点,并在完成一个过载服务器节点的过载分配后,更新所有服务器节点的负载量然后进行下一个过载服务器节点的过载分配,直到全部过载服务器节点的过载量均为零或全部轻载服务器节点的可接受负载量均为零。
请参阅图5,本发明提供的一种基于zookeeper实现负载均衡的装置的第二实施例的流程示意图。
本发明提供了一种基于zookeeper实现负载均衡的装置的第二实施例,包括:
获取单元501,用于获取zookeeper集群中每个服务器节点的负载量。
分类单元502,用于根据负载量和满负载量的相对大小将所有服务器节点分为过载服务器节点和轻载服务器节点,满负载量为服务器节点可处理的最大负载量。
分配单元503,用于按过载量由大到小的顺序依次对过载服务器节点进行过载分配,将过载部分分配给轻载服务器节点,并在完成一个过载服务器节点的过载分配后,更新所有服务器节点的负载量然后进行下一个过载服务器节点的过载分配,直到全部过载服务器节点的过载量均为零或全部轻载服务器节点的可接受负载量均为零。
分配单元503包括比较子单元5031、第一分配子单元5032和第二分配子单元5033;
比较子单元5031,用于在对一个过载服务器节点进行过载分配的过程中,将当前过载服务器节点的过载量与所有轻载服务器节点中的单机最大可接受负载量比较。
第一分配子单元5032,用于当当前过载服务器节点的过载量大于单机最大可接受负载量时,将当前过载服务器节点的过载部分按可接受负载量由大到小的顺序依次分配给多个轻载服务器节点,全部轻载服务器节点的可接受负载量均为零时分配停止。
第二分配子单元5033,用于当当前过载服务器节点的过载量不大于单机最大可接受负载量时,将当前过载服务器节点的过载部分分配给可接受负载量不小于当前过载服务器节点过载量的轻载服务器节点。
其中,第二分配子单元5033,可以具体用于当当前过载服务器节点的过载量不大于单机最大可接受负载量时,搜索是否存在可接受负载量等于当前过载服务器节点过载量的轻载服务器节点,若存在,则将当前过载服务器节点的过载部分分配给可接受负载量等于当前过载服务器节点过载量的轻载服务器节点,若不存在,则将当前过载服务器节点的过载部分分配给可接受负载量最大的轻载服务器节点。
异常处理单元504,用于将进程崩溃的轻载服务器节点的可接受负载量更新为零,将进程崩溃的过载服务器节点的过载量更新为零。
异常处理单元504,还用于将进程崩溃后又恢复正常的轻载服务器节点的可接受负载量更新为实际可接受负载量,将进程崩溃后又恢复正常的过载服务器节点的过载量更新为实际过载量。
以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种基于zookeeper实现负载均衡的方法,其特征在于,包括:
获取zookeeper集群中每个服务器节点的负载量;
根据所述负载量和满负载量的相对大小将所有服务器节点分为过载服务器节点和轻载服务器节点,所述满负载量为所述服务器节点可处理的最大负载量;
按过载量由大到小的顺序依次对过载服务器节点进行过载分配,将过载部分分配给所述轻载服务器节点,并在完成一个过载服务器节点的过载分配后,更新所有服务器节点的负载量然后进行下一个过载服务器节点的过载分配,全部所述过载服务器节点的过载量均为零或全部所述轻载服务器节点的可接受负载量均为零。
2.根据权利要求1所述的基于zookeeper实现负载均衡的方法,其特征在于,在对一个过载服务器节点进行过载分配的过程中,将当前过载服务器节点的过载量与所有所述轻载服务器节点中的单机最大可接受负载量比较;
若当前过载服务器节点的过载量大于所述单机最大可接受负载量,则将当前过载服务器节点的过载部分按可接受负载量由大到小的顺序依次分配给多个所述轻载服务器节点,全部所述轻载服务器节点的可接受负载量均为零时分配停止;
若当前过载服务器节点的过载量不大于所述单机最大可接受负载量,则将当前过载服务器节点的过载部分分配给可接受负载量不小于当前过载服务器节点过载量的所述轻载服务器节点。
3.根据权利要求2所述的基于zookeeper实现负载均衡的方法,其特征在于,若当前过载服务器节点的过载量不大于所述单机最大可接受负载量,则将当前过载服务器节点的过载部分分配给可接受负载量不小于当前过载服务器节点过载量的所述轻载服务器节点具体包括:
若当前过载服务器节点的过载量不大于所述单机最大可接受负载量,则搜索是否存在可接受负载量等于当前过载服务器节点过载量的轻载服务器节点,若存在,则将当前过载服务器节点的过载部分分配给可接受负载量等于当前过载服务器节点过载量的轻载服务器节点,若不存在,则将当前过载服务器节点的过载部分分配给可接受负载量最大的轻载服务器节点。
4.根据权利要求1所述的基于zookeeper实现负载均衡的方法,其特征在于,还包括:
若检测到zookeeper集群中一个所述服务器节点所在的进程崩溃,则当进程崩溃的所述服务器节点为轻载服务器节点时,将进程崩溃的轻载服务器节点的可接受负载量更新为零;
当进程崩溃的所述服务器节点为过载服务器节点时,将进程崩溃的过载服务器节点的过载量更新为零。
5.根据权利要求4所述的基于zookeeper实现负载均衡的方法,其特征在于,还包括:
当所述轻载服务器节点所在的进程在崩溃后又恢复正常时,将进程崩溃后又恢复正常的所述轻载服务器节点的可接受负载量更新为实际可接受负载量;
当所述过载服务器节点所在的进程在崩溃后又恢复正常时,将进程崩溃后又恢复正常的所述过载服务器节点的过载量更新为实际过载量。
6.一种基于zookeeper实现负载均衡的装置,其特征在于,包括:
获取单元,用于获取zookeeper集群中每个服务器节点的负载量;
分类单元,用于根据所述负载量和满负载量的相对大小将所有服务器节点分为过载服务器节点和轻载服务器节点,所述满负载量为所述服务器节点可处理的最大负载量;
分配单元,用于按过载量由大到小的顺序依次对过载服务器节点进行过载分配,将过载部分分配给所述轻载服务器节点,并在完成一个过载服务器节点的过载分配后,更新所有服务器节点的负载量然后进行下一个过载服务器节点的过载分配,全部所述过载服务器节点的过载量均为零或全部所述轻载服务器节点的可接受负载量均为零。
7.根据权利要求6所述的基于zookeeper实现负载均衡的装置,其特征在于,所述分配单元包括比较子单元、第一分配子单元和第二分配子单元;
所述比较子单元,用于在对一个过载服务器节点进行过载分配的过程中,将当前过载服务器节点的过载量与所有所述轻载服务器节点中的单机最大可接受负载量比较;
所述第一分配子单元,用于当当前过载服务器节点的过载量大于所述单机最大可接受负载量时,将当前过载服务器节点的过载部分按可接受负载量由大到小的顺序依次分配给多个所述轻载服务器节点,全部所述轻载服务器节点的可接受负载量均为零时分配停止;
所述第二分配子单元,用于当当前过载服务器节点的过载量不大于所述单机最大可接受负载量时,将当前过载服务器节点的过载部分分配给可接受负载量不小于当前过载服务器节点过载量的所述轻载服务器节点。
8.根据权利要求7所述的基于zookeeper实现负载均衡的装置,其特征在于,所述第二分配子单元,具体用于当当前过载服务器节点的过载量不大于所述单机最大可接受负载量时,搜索是否存在可接受负载量等于当前过载服务器节点过载量的轻载服务器节点,若存在,则将当前过载服务器节点的过载部分分配给可接受负载量等于当前过载服务器节点过载量的轻载服务器节点,若不存在,则将当前过载服务器节点的过载部分分配给可接受负载量最大的轻载服务器节点。
9.根据权利要求6所述的基于zookeeper实现负载均衡的装置,其特征在于,还包括:
异常处理单元,用于将进程崩溃的轻载服务器节点的可接受负载量更新为零,将进程崩溃的过载服务器节点的过载量更新为零。
10.根据权利要求9所述的基于zookeeper实现负载均衡的装置,其特征在于,所述异常处理单元,还用于将进程崩溃后又恢复正常的所述轻载服务器节点的可接受负载量更新为实际可接受负载量,将进程崩溃后又恢复正常的所述过载服务器节点的过载量更新为实际过载量。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711484805.8A CN108234637A (zh) | 2017-12-29 | 2017-12-29 | 一种基于zookeeper实现负载均衡的方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711484805.8A CN108234637A (zh) | 2017-12-29 | 2017-12-29 | 一种基于zookeeper实现负载均衡的方法和系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108234637A true CN108234637A (zh) | 2018-06-29 |
Family
ID=62647338
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711484805.8A Pending CN108234637A (zh) | 2017-12-29 | 2017-12-29 | 一种基于zookeeper实现负载均衡的方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108234637A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109495542A (zh) * | 2018-10-16 | 2019-03-19 | 深圳壹账通智能科技有限公司 | 基于性能监控的负载分配方法及终端设备 |
CN110365743A (zh) * | 2019-06-21 | 2019-10-22 | 南京壹进制信息科技有限公司 | 一种基于Zookeeper实现的支持多种可自定义负载算法的负载均衡器实现方法 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101252603A (zh) * | 2008-04-11 | 2008-08-27 | 清华大学 | 基于存储区域网络san的集群分布式锁管理方法 |
CN101610287A (zh) * | 2009-06-16 | 2009-12-23 | 浙江大学 | 一种应用于分布式海量存储系统的负载均衡方法 |
CN101697168A (zh) * | 2009-10-22 | 2010-04-21 | 中国科学技术大学 | 一种分布式文件系统动态元数据管理方法及系统 |
CN102098728A (zh) * | 2011-01-05 | 2011-06-15 | 北京邮电大学 | 一种移动负载均衡方法 |
CN102523158A (zh) * | 2011-12-15 | 2012-06-27 | 杭州电子科技大学 | 一种基于权重的元数据服务器集群负载均衡方法 |
CN102739775A (zh) * | 2012-05-29 | 2012-10-17 | 宁波东冠科技有限公司 | 物联网数据采集服务器集群的监控和管理方法 |
CN103220717A (zh) * | 2012-01-20 | 2013-07-24 | 华为技术有限公司 | 一种负载均衡方法以及相关装置 |
US20130344874A1 (en) * | 2012-06-22 | 2013-12-26 | Kt Corporation | Load management |
CN103942105A (zh) * | 2014-03-20 | 2014-07-23 | 华为技术有限公司 | 一种获取资源利用情况的方法和装置 |
-
2017
- 2017-12-29 CN CN201711484805.8A patent/CN108234637A/zh active Pending
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101252603A (zh) * | 2008-04-11 | 2008-08-27 | 清华大学 | 基于存储区域网络san的集群分布式锁管理方法 |
CN101610287A (zh) * | 2009-06-16 | 2009-12-23 | 浙江大学 | 一种应用于分布式海量存储系统的负载均衡方法 |
CN101697168A (zh) * | 2009-10-22 | 2010-04-21 | 中国科学技术大学 | 一种分布式文件系统动态元数据管理方法及系统 |
CN102098728A (zh) * | 2011-01-05 | 2011-06-15 | 北京邮电大学 | 一种移动负载均衡方法 |
CN102523158A (zh) * | 2011-12-15 | 2012-06-27 | 杭州电子科技大学 | 一种基于权重的元数据服务器集群负载均衡方法 |
CN103220717A (zh) * | 2012-01-20 | 2013-07-24 | 华为技术有限公司 | 一种负载均衡方法以及相关装置 |
CN102739775A (zh) * | 2012-05-29 | 2012-10-17 | 宁波东冠科技有限公司 | 物联网数据采集服务器集群的监控和管理方法 |
US20130344874A1 (en) * | 2012-06-22 | 2013-12-26 | Kt Corporation | Load management |
CN103942105A (zh) * | 2014-03-20 | 2014-07-23 | 华为技术有限公司 | 一种获取资源利用情况的方法和装置 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109495542A (zh) * | 2018-10-16 | 2019-03-19 | 深圳壹账通智能科技有限公司 | 基于性能监控的负载分配方法及终端设备 |
CN109495542B (zh) * | 2018-10-16 | 2022-08-02 | 深圳壹账通智能科技有限公司 | 基于性能监控的负载分配方法及终端设备 |
CN110365743A (zh) * | 2019-06-21 | 2019-10-22 | 南京壹进制信息科技有限公司 | 一种基于Zookeeper实现的支持多种可自定义负载算法的负载均衡器实现方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101346696B (zh) | 负荷分散型客户机服务器系统及负荷分散方法 | |
CN109117265A (zh) | 在集群中调度作业的方法、装置、设备及存储介质 | |
CN103873534B (zh) | 一种应用集群迁移方法及装置 | |
CN105653398B (zh) | 一种智能分配操作系统镜像方法 | |
US20080192653A1 (en) | Storage medium containing parallel process control program, parallel processs control system, and parallel process control method | |
CN108595306A (zh) | 一种面向混部云的服务性能测试方法 | |
CN105071994B (zh) | 一种海量数据监控系统 | |
CN103218380B (zh) | 服务器装置和保证数据次序的方法 | |
CN106681839B (zh) | 弹性计算动态分配方法 | |
CN106603696A (zh) | 一种基于超融合基础框架的高可用系统 | |
CN108234637A (zh) | 一种基于zookeeper实现负载均衡的方法和系统 | |
Malhotra et al. | An evaluation of worker assignment policies in dual resource-constrained job shops with heterogeneous resources and worker transfer delays | |
CN106357726A (zh) | 负载均衡方法及装置 | |
CN104580194A (zh) | 面向视频应用的虚拟化资源管理方法及装置 | |
CN106991070A (zh) | 实时计算方法及装置 | |
CN107196781A (zh) | 安全配置核查任务分配方法及装置 | |
CN107341103A (zh) | 一种软件兼容性的测试方法及系统 | |
CN110187972A (zh) | 一种基于api的软负载均衡实现方案 | |
US20030028640A1 (en) | Peer-to-peer distributed mechanism | |
CN105553732A (zh) | 一种分布式网络模拟方法及系统 | |
CN110334079A (zh) | 一种数据迁移方法及装置 | |
CN108985556A (zh) | 流量调度的方法、装置、设备和计算机存储介质 | |
CN107426012B (zh) | 一种基于超融合架构的故障恢复方法及其装置 | |
CN106899659A (zh) | 分布式系统及其管理方法和管理装置 | |
US20190129763A1 (en) | Processing system and processing method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20180629 |