一种负载均衡处理方法、装置、电子设备及存储介质与流程

文档序号:22312969发布日期:2020-09-23 01:34阅读:152来源:国知局
一种负载均衡处理方法、装置、电子设备及存储介质与流程

本发明涉及计算机技术领域,尤其涉及一种负载均衡处理方法、装置、电子设备及存储介质。



背景技术:

在分布式系统中,数据可靠性是极其重要因素。为了提高系统的可靠性,越来越多的分布式系统引入了强一致性算法paxos。但是paxos算法本身的算法原理导致了其性能较低、实现较为复杂。为了提高paxos算法的性能,通常会引入master(主节点)角色,并只允许master节点进行propose(提案,也即发起一次paxos算法过程),防止多节点同时propose的冲突。那么,多个group(分组)的master角色的分布就决定了整体系统的性能。因此需要实现一种master负载均衡策略,使得master角色在分布式系统的各节点上均匀分布。

现有master负载均衡策略都是通过每个节点计算自己是哪些group的master,当其作为master的group超过一定数量后,可以主动放弃部分group的master角色,让其他节点竞争成为新的master。但是,由于现有策略是master节点主动放弃master角色,所以存在以下几点缺陷:新master节点是由所有slave节点(从节点)竞争产生,完全随机,无法保证master漂移后负载均衡;master节点主动放弃master周期较长,需要等待master有效周期过期,并且需要等待slave节点进入续约周期内,才可以发起bemaster(也即发起成为master的一次propose)竞争成为新master角色;无法控制同时放弃master的group数量,因为在master进行漂移时,group处于非正常状态,集群同时进行master漂移的group的数量越多越不稳定。由此可见,上述方案存在无法保证master漂移后负载均衡,且master漂移周期较长等技术问题。



技术实现要素:

本发明实施例提供一种负载均衡处理方法、装置、电子设备及存储介质,以解决无法保证master漂移后负载均衡,且master漂移周期较长的问题。

为了解决上述技术问题,本发明是这样实现的:

第一方面,本发明实施例提供了一种负载均衡处理方法,包括:

针对集群中的每个分组,响应于所述分组当前的主节点不是所述分组的理想节点,通过所述理想节点发送第一通知至所述主节点;

响应于所述主节点接收到所述第一通知,控制所述主节点针对所述分组的主节点角色在主节点有效期之前过期,每个非理想节点在预设时间段内暂停发起针对所述分组的成为主节点的提案,并控制所述理想节点针对所述分组发起成为主节点的提案,以使所述理想节点成为所述分组的主节点;

其中,所述理想节点为所述分组预先分配的作为理想主节点的节点,所述非理想节点为所述集群对应的全部节点中除所述理想节点之外的其他节点。

可选地,所述控制所述主节点针对所述分组的主节点角色在主节点有效期之前过期,每个非理想节点在预设时间段内暂停发起针对所述分组的成为主节点的提案,所述理想节点针对所述分组发起成为主节点的提案,以使所述理想节点成为所述分组新的主节点的步骤,包括:

通过所述主节点发送第一提案至各个节点,以使所述理想节点成为所述分组新的主节点;

其中,所述第一提案的提案内容包括:所述主节点针对所述分组的主节点角色在主节点有效期之前过期,每个非理想节点在预设时间段内暂停发起针对所述分组的成为主节点的提案,所述理想节点针对所述分组发起成为主节点的提案。

可选地,在所述针对集群中的每个分组,响应于所述分组当前的主节点不是所述分组的理想节点,通过所述理想节点发送第一通知至所述主节点的步骤之后,还包括:

在所述理想节点成为所述分组新的主节点之前,将所述分组当前的主节点接收到的请求转发至所述理想节点。

可选地,所述响应于所述分组当前的主节点不是所述分组的理想节点,通过所述理想节点发送第一通知至所述主节点的步骤,包括:

针对集群中的每个节点以及每个分组,获取以每个所述节点为主节点的分组;

根据每个分组的理想节点,从所述分组中获取理想节点与主节点不同的分组,作为待处理的分组;

按照以每个待处理的分组的编号为参照的预设顺序,每次针对k个待处理的分组,通过所述待处理的分组的理想节点发送第一通知至所述待处理的分组当前的主节点,k为正整数。

可选地,所述预设时间段为所述主节点有效期的2倍,每个节点的主节点续约周期小于所述主节点有效期。

可选地,所述控制每个所述节点中的主节点角色在主节点有效期之前过期的步骤,包括:

针对每个所述节点,根据所述主节点有效期的时间长度,以及每个节点得知主节点角色的起始时间,获取每个节点的主节点角色过期时间点;

针对每个所述节点,将所述节点的主节点角色过期时间点前移,以使所述节点中的主节点角色提前过期。

第二方面,负载均衡处理装置,其特征在于,包括:

通知模块,用于针对集群中的每个分组,响应于所述分组当前的主节点不是所述分组的理想节点,通过所述理想节点发送第一通知至所述主节点;

主节点漂移模块,用于响应于所述主节点接收到所述第一通知,控制所述主节点针对所述分组的主节点角色在主节点有效期之前过期,每个非理想节点在预设时间段内暂停发起针对所述分组的成为主节点的提案,并控制所述理想节点针对所述分组发起成为主节点的提案,以使所述理想节点成为所述分组的主节点;

其中,所述理想节点为所述分组预先分配的作为理想主节点的节点,所述非理想节点为所述集群对应的全部节点中除所述理想节点之外的其他节点。

可选地,所述主节点漂移模块,具体用于:通过所述主节点发送第一提案至各个节点,以使所述理想节点成为所述分组新的主节点;

其中,所述第一提案的提案内容包括:所述主节点针对所述分组的主节点角色在主节点有效期之前过期,每个非理想节点在预设时间段内暂停发起针对所述分组的成为主节点的提案,所述理想节点针对所述分组发起成为主节点的提案。

可选地,所述装置还包括:

请求转发模块,用于在所述理想节点成为所述分组新的主节点之前,将所述分组当前的主节点接收到的请求转发至所述理想节点。

可选地,所述通知模块,包括:

实际分布获取子模块,用于针对集群中的每个节点以及每个分组,获取以每个所述节点为主节点的分组;

待处理分组筛选子模块,用于根据每个分组的理想节点,从所述分组中获取理想节点与主节点不同的分组,作为待处理的分组;

通知子模块,用于按照以每个待处理的分组的编号为参照的预设顺序,每次针对k个待处理的分组,通过所述待处理的分组的理想节点发送第一通知至所述待处理的分组当前的主节点,k为正整数。

可选地,所述预设时间段为所述主节点有效期的2倍,每个节点的主节点续约周期小于所述主节点有效期。

可选地,所述主节点漂移模块,包括:

过期时间点获取子模块,用于针对每个所述节点,根据所述主节点有效期的时间长度,以及每个节点得知主节点角色的起始时间,获取每个节点的主节点角色过期时间点;

过期时间点前移子模块,用于针对每个所述节点,将所述节点的主节点角色过期时间点前移,以使所述节点中的主节点角色提前过期。

第三方面,本发明实施例另外提供了一种电子设备,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如第一方面所述的负载均衡处理方法的步骤。

第四方面,本发明实施例另外提供了一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如第一方面所述的负载均衡处理方法的步骤。

在本发明实施例中,提出一种负载均衡处理方案,可以在负载不均衡的情况下,让每个分组的理想节点尽最大可能成为该分组新的master,保证每次master漂移的最大收益,实现负载均衡。并且在保证propose不冲突的情况下极大程度上缩短了master负载均衡周期的时间,减少group不正常状态的时间。

上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明实施例中的一种负载均衡处理方法的步骤流程图;

图2是本发明实施例中的一种master的选举过程示意图;

图3是本发明实施例中的另一种负载均衡处理方法的步骤流程图;

图4是本发明实施例中的一种主节点漂移过程示意图;

图5是本发明实施例中的一种节点负载均衡装置的结构示意图;

图6是本发明实施例中的另一种节点负载均衡装置的结构示意图;

图7是本发明实施例中的一种电子设备的硬件结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

参照图1,示出了本发明实施例中一种负载均衡处理方法的步骤流程图。

步骤110,针对集群中的每个分组,响应于所述分组当前的主节点不是所述分组的理想节点,通过所述理想节点发送第一通知至所述主节点;

步骤120,响应于所述主节点接收到所述第一通知,控制所述主节点针对所述分组的主节点角色在主节点有效期之前过期,每个非理想节点在预设时间段内暂停发起针对所述分组的成为主节点的提案,并控制所述理想节点针对所述分组发起成为主节点的提案,以使所述理想节点成为所述分组的主节点;其中,所述理想节点为所述分组预先分配的作为理想主节点的节点,所述非理想节点为所述集群对应的全部节点中除所述理想节点之外的其他节点。

如上述,多个分组的主节点角色的分布就决定了整体系统的性能。例如,假设集群中包含n个节点和m个分组,如果某一节点在同一时间段竞争成为多个分组的主节点,那么此时该节点则需要同时承担相应多个分组的主节点角色,容易使得该节点的负载明显高于其他节点,使得各个节点负载不均衡。因此,考虑到集群分组的主节点竞争过程中存在的诸多问题,需要实现一种负载均衡策略,使得master角色在各节点上均匀分布,让每个分组的指定节点(也即理想节点)尽最大可能成为新的master,保证每次master漂移的最大收益。并且在保证propose不冲突的情况下极大程度上缩短了master负载均衡周期的时间,减少group不正常状态的时间。在本申请实施例中,可以预先为集群中的每个分组设置各自的理想的主节点,也即每个分组的理想节点,进而则可以将每个分组的主节点调整为该分组的理想节点。

master节点要满足如下强制限制:在任意时刻,paxos集群中的任一分组有且只有一个master节点或者没有master节点,并且只有master节点可以发起propose。同样只有当前节点是master角色或分组无master角色时,才可以发起针对该分组的bemaster操作。

如图2所示为一种master的选举过程。如图示例中,假设某一分组当前无master,节点(node)a在t1时刻发起了针对该分组的bemaster操作。通过paxos算法后,在t2时刻节点a成为了该分组的master角色。对于节点a,以bemaster操作为开始计算master任期时间,即t3=timeout+t1。对于节点b,从得知a节点是master后开始计算master任期时间,即认为master过期时间t2’=timeout+t1’。因为t1<t1’,所以节点a认为的master过期时间t3一定小于节点b认为的master过期时间t2’,在master任期内不会出现其他节点尝试抢占master的情况。其中,timeout可以理解为master任期时间,在实际应用中,每个master角色都会有一个有效周期,也即主节点有效期,超出有效周期后master角色失效。

因此,在本发明实施例中,为了可以预先分配每个分组的理想节点,进而可以周期性地校验每个分组实际的主节点是否为其对应的理想节点,如果不是则可以针对相应分组进行主节点的调整,否则可以不进行主节点的调整。而且,在进行主节点调整时,为了告知当前实际的主节点,该分组的理想节点已准备好可以开始进行master的漂移,还可以通过相应分组的理想节点发送第一通知至所述主节点。相应分组当前实际的master节点收到该第一通知后会对该group进行伪master节点的设置,即控制所述主节点针对所述分组的主节点角色在主节点有效期之前过期,每个非理想节点在预设时间段内暂停发起针对所述分组的成为主节点的提案,并控制所述理想节点针对所述分组发起成为主节点的提案,以使所述理想节点成为所述分组的主节点。这就保证了理想节点会最大可能的成为相应分组新的master,也即使相应分组的理想节点成为该分组新的主节点。并且由于提前设置了理想节点为伪master节点,那么理想节点bemaster操作一定不会因冲突而导致失败,这也保证了理想节点bemaster操作最大可能的成功。

而且,在控制主节点针对所述分组的主节点角色在主节点有效期之前过期时,为了方便理想节点可以尽快竞争成为新的主节点,则可以控制相应分组当前的主节点尽快放弃其主节点角色,因此在本发明实施例中,可以在接收到第一同时的当前时刻,立即控制相应分组当前的主节点角色在当前时刻过期,当然也可以在其自身的主节点有效期之前的任意时刻放弃针对相应分组的主节点角色,对此本发明实施例不加以限定。

而且,如上述的主节点选举过程可知,作为分组的主节点,也需要其他各个从节点获知该主节点作为相应分组的主节点的信息,也即获取相应分组中的主节点角色,那么此时在控制主节点针对所述分组的主节点角色在主节点有效期之前过期的过程,可以包括控制各个节点(包括相应分组的主节点和各个从节点)中获知的主节点角色提前过期。例如,对于分组1,其当前的主节点为a,从节点包括节点b和节点c,那么对于节点b和节点c而言,均可以得知节点a的主节点角色,那么在控制主节点中针对所述分组1的主节点角色在主节点有效期之前过期时,可以控制此时的节点a提前放弃自身针对分组1的主节点角色,同时控制节点b和节点c得知的节点a作为分组1的主节点角色也提前过期,也即让节点b和节点c不再认为节点a是分组1的主节点角色。

其中,节点可以理解为任何可用形式,在不同的应用场景中,节点的存在形式可以有所不同,对此本发明实施例不加以限定。例如,在引入了强一致性算法paxos的分布式系统中,节点可以为集群中服务器,等等。而且,在本发明实施例中,可以根据不同需求自定义集群的分组情况,对此本发明实施例不加以限定。例如,在引入了强一致性算法paxos的分布式集群中,可以根paxos算法对集群进行分组,而且各个分组之间完全独立。

参照图3,在本发明实施例中,所述步骤120进一步可以包括:通过所述主节点发送第一提案至各个节点,以使所述理想节点成为所述分组新的主节点;其中,所述第一提案的提案内容包括:所述主节点针对所述分组的主节点角色在主节点有效期之前过期,每个非理想节点在预设时间段内暂停发起针对所述分组的成为主节点的提案,所述理想节点针对所述分组发起成为主节点的提案,所述非理想节点为所述集群对应的全部节点中除所述理想节点之外的其他节点。

而且,此时为了使理想节点尽快成为相应分组新的主节点,则可以通过第一提案控制主节点角色立即提前过期,相应地也可以控制理想节点立即针对所述分组发起成为主节点的提案,也即立即发起成为相应分组的主节点的提案。

如上述,各个节点之间可以通过发起提案的方式进行通信,那么此时主节点可以通过发起提案的方式以使理想节点成为新的主节点。那么此时,当前的主节点在接收到理想节点发送的第一通知之后,主节点则可以发起最后发起一次propose,也即第一提案,第一提案的内容可以包括让所有节点的针对相应分组的master角色提前过期,所有非理想节点在预设时间段内暂停周期的针对相应分组的bemaster(成为主节点)操作,理想节点执行一次针对相应分组的bemaster操作。这就保证了理想节点会最大可能的成为新的master。而且可以称这一次propose,也即第一提案为夺主propose。

当然,在本发明实施例中,也可以将通过多个提案实现上述目的,对此本发明实施例不加以限定。例如,可以通过主节点发送多个提案至各个节点,其中一个提案的提案内容包括所述主节点针对所述分组的主节点角色在主节点有效期之前过期,一个提案的内容包括:每个非理想节点在预设时间段内暂停发起针对所述分组的成为主节点的提案,另一提案的内容包括:所述理想节点针对所述分组发起成为主节点的提案,以分别控制主节点角色提前过期、从节点暂停针对相应分组的bemaster操作、理想节点针对所述分组发起bemaster操作,等等。

而且,为了避免冲突,可以在主节点角色提前过期之后,控制理想节点发起针对相应分组的bemaster操作,也即成为主节点提案,当然根据需求也可以在在主节点角色提前过期之前,控制理想节点发起针对相应分组的bemaster操作,对此本发明实施例不加以限定。

在本发明实施例中,提出一种负载均衡处理方案,可以在负载不均衡的情况下,让每个分组的理想节点尽最大可能成为该分组新的master,保证每次master漂移的最大收益,实现负载均衡。并且在保证propose不冲突的情况下极大程度上缩短了master负载均衡周期的时间,减少group不正常状态的时间。

参照图3,在本发明实施例中,还可以包括:

步骤130,在所述理想节点成为所述分组新的主节点之前,将所述分组当前的主节点接收到的请求转发至所述理想节点。

另外,如上述在实际应用中,每个分组只可以存在一个主节点或者没有主节点,因此为了避免理想节点在竞争成为主节点时与原有的主节点发生冲突,可以在提前设置理想节点为伪master节点,也在所述理想节点成为所述分组新的主节点之前,在主节点接收到第一通知之后,将所述分组当前的主节点接收到的全部请求转发至所述理想节点,以让理想节点成为相应分组的伪master节点进行propose,提前承担master角色的功能。这就保证了相应分组整个master负载均衡周期的平滑过度。而且理想节点的bemaster操作一定不会因冲突而导致失败,这也保证了理想节点bemaster操作最大可能的成功。

参照图3,在本发明实施例中,所述步骤110进一步可以包括:

步骤111,针对集群中的每个节点以及每个分组,获取以每个所述节点为主节点的分组;

步骤112,根据每个分组的理想节点,从所述分组中获取理想节点与主节点不同的分组,作为待处理的分组;

步骤113,按照以每个待处理的分组的编号为参照的预设顺序,每次针对k个待处理的分组,通过所述待处理的分组的理想节点发送第一通知至所述待处理的分组当前的主节点,k为正整数。

由于主节点角色进行漂移时,group处于非正常状态,那么集群同时进行主节点漂移的group的数量越多越不稳定。因此在本发明实施例中,为了提高集群稳定性,可以控制每次进行主节点漂移的分组数量,而且为了避免产生混乱可以预先设置每个分组的编号,进而则可以每个分组的编号为参照的预设顺序,控制同一时间段控制k个分组进行主节点漂移,也即让相应分组的理想节点竞争成为该分组新的主节点。其中k的具体取值,以及预设顺序均可以根据需求进行预先设置,对此本发明实施例不加以限定。例如,可以k为1,且预设顺序为按照编号从大到小的顺序,或者按照编号从小到大的顺序,等等。

具体地,针对集群中的每个节点以及每个分组,获取以每个所述节点为主节点的分组,从而可以根据每个分组的理想节点,从所述分组中获取理想节点与实际的主节点不同的分组,即为待处理的分组,进而则可以按照以每个待处理的分组的编号为参照的预设顺序,每次针对k个待处理的分组,通过所述待处理的分组的理想节点发送第一通知至所述待处理的分组当前的主节点,k为正整数。

例如,首先可以通过稳定性的算法计算好集群中每个group的master分布的理想情况,也即每个分组的理想节点,然后通过集群内的每个节点定时校验当前所有group实际的master分布与理想情况下master分布不同的最小的k个group编号,选定该k个group作为当前待进行负载均衡的待处理group。这样就保证了同一时间只有k个group会进行负载均衡。

可选地,在本发明实施例中,所述预设时间段为所述主节点有效期的2倍,每个节点的主节点续约周期小于所述主节点有效期。

为了避免其他节点发起针对当前进行主节点漂移的bemaster操作,影响理想节点竞争成为新的主节点的概率,在本申请实施例中,可以设置预设时间长度大于主节点有效期,而且优选地可以设置预设时间段为所述主节点有效期的2倍。

另外,在实际应用中,paxos算法中所有节点都会周期性的针对各个分组发起bemaster,只有自身是master角色或分组中无master角色时可以发起成功。其中,节点发起bemaster的周期可以理解为主节点续约周期。而且,在master任期内不会出现其他节点尝试抢占master的情况,但是,在理想节点的主节点角色过期之后,进入主节点续约周期,其他节点仍然可以参与主节点竞争,从而容易使得理想节点丢失主节点角色,那么则需要再次针对同一分组进行重复的主节点漂移,以使得各个节点负载均衡。

因此,在本发明实施例中,为了避免理想节点的主节点角色被抢占,使得同一分组反复进行负载均衡。对于master续约,可以设置所有节点在小于master的任期时间(也即主节点有效期)内,周期性的发起bemaster操作即可完成续约,保证理想节点作为master稳定迭代下去,也即设置每个节点的主节点续约周期小于所述主节点有效期。而且,为了避免基于主节点续约周期确定的主节点续约时间点与基于主节点有效期确定的主节点过期时间点完全重合,导致其他非理想节点抢占主节点,还可以设置主节点续约周期为固定时间长度与随机时间因子的组合,且其中的固定时间长度的取值小于主节点有效期。

可选地,在本发明实施例中,可以通过以下方式控制每个所述节点中的主节点角色在主节点有效期之前过期:

步骤s1,针对每个所述节点,根据所述主节点有效期的时间长度,以及每个节点得知主节点角色的起始时间,获取每个节点的主节点角色过期时间点;

步骤s2,针对每个所述节点,将所述节点的主节点角色过期时间点前移,以使所述节点中的主节点角色提前过期。

在实际应用中,master有效期为一段时间,不易对其进行修改与操作。那么为了让master节点提前过期,可以对master有效期进行概念的转换,在本方案中,可以根据master有效期的时间长度,以及各个节点获知主节点角色的时间点,确定每个master有效期对应的主节点角色过期时间点,在主节点角色过期时间点前master有效,这样就可以通过前移该主节点角色过期时间点,让master快速提前过期。

例如,对于图2所示的节点a和节点b,在节点a竞争成为主节点之后,节点a得知主节点角色的起始时间节点为t1时刻,节点a的主节点角色过期时间点t3=timeout+t1,节点b得知主节点角色的起始时间节点为t1’时刻,节点b认为的主节点角色过期时间点t2’=timeout+t1’,那么此时为了让当前的主节点角色提前过期,则可以控制a节点将t3时刻向前移,调整t3,使得t3<timeout+t1,相应地可以控制b节点将t2’时刻向前移,也即调整t2’,使得t2’<timeout+t1’。

如图4所示为一种分组的主节点漂移的过程示意图。其中,当前的主节点(master节点)在接收到理想节点的第一通知之后,可以发起夺主propose也即第一提案至该分组的理想节点以及各个其他节点,相应地理想节点以及各个其他节点可以返回针对夺主propose的同意响应(accept)至master节点,同时通过夺主propose可以控制每个节点获知的master节点的主节点角色提前过期(过期master),包括master节点、其他节点在内的每个非理想节点在预设时间段内暂停发起针对所述分组的成为主节点的提案(也即停止master续约周期),同时还可以控制所述理想节点针对所述分组发起成为主节点(bemaster)的提案至master节点和其他节点,并在接收master节点和其他节点的accept之后,理想节点则可以晋升为该分组新的主节点(master)。

通常的master负载均衡方案的master漂移周期至少为master有效期时间、master续约周期时间与一次bemaster时间的总和,而工程中一般master有效期设置为10秒,master续约周期为2~3秒,而一次bemaster时间为10毫秒以内。而本发明的master负载均衡方案只有一次夺主propose时间,即10毫秒以内的时间。极大程度上缩短了master漂移周期。

并且通常的master负载均衡方案中,无法指定理想节点成为新的master,即新master是由所有slave节点(从节点)竞争选择,随机性很强,很大程度导致master漂移后依旧达不到负载均衡的效果。而本发明的master负载均衡方案可以尽最大可能使得master漂移到指定的理想节点上,达到每次master漂移都最大程度做到负载均衡。

此外,在本发明实施例中,通过转换master有效期的概念,把时间长度转换为时间结点的概念,通过一次propose提前让所有节点当前的master过期,并且所有非理想节点在一段时间内放弃bemaster操作,理想节点立即执行一次bemaster操作,保证尽最大可能使理想节点成为新master,并且极大程度缩短了整个周期。

另外,本发明中采用了伪master节点的概念,为了保证整个master漂移周期服务连续可用,在master漂移真正发起propose前让理想节点成为伪master,提前承担起master的责任,提前开始进行正常数据的propose,使得整个master漂移周期平滑,服务连续可用不间断。

参照图5,示出了本发明实施例中一种负载均衡处理装置的结构示意图。

本发明实施例的负载均衡处理装置包括:通知模块210和主节点漂移模块220。

下面分别详细介绍各模块的功能以及各模块之间的交互关系。

通知模块210,用于针对集群中的每个分组,响应于所述分组当前的主节点不是所述分组的理想节点,通过所述理想节点发送第一通知至所述主节点;

主节点漂移模块220,用于响应于所述主节点接收到所述第一通知,控制所述主节点针对所述分组的主节点角色在主节点有效期之前过期,每个非理想节点在预设时间段内暂停发起针对所述分组的成为主节点的提案,并控制所述理想节点针对所述分组发起成为主节点的提案,以使所述理想节点成为所述分组的主节点;其中,所述理想节点为所述分组预先分配的作为理想主节点的节点,所述非理想节点为所述集群对应的全部节点中除所述理想节点之外的其他节点。

在本发明实施例中,提出一种负载均衡处理方案,可以在负载不均衡的情况下,让每个分组的理想节点尽最大可能成为该分组新的master,保证每次master漂移的最大收益,实现负载均衡。并且在保证propose不冲突的情况下极大程度上缩短了master负载均衡周期的时间,减少group不正常状态的时间。

参照图6,在本发明实施例中,所述主节点漂移模块220,具体用于:通过所述主节点发送第一提案至各个节点,以使所述理想节点成为所述分组新的主节点;其中,所述第一提案的提案内容包括:所述主节点针对所述分组的主节点角色在主节点有效期之前过期,每个非理想节点在预设时间段内暂停发起针对所述分组的成为主节点的提案,所述理想节点针对所述分组发起成为主节点的提案。

参照图6,在本发明实施例中,所述装置还可以包括:请求转发模块230,用于在所述理想节点成为所述分组新的主节点之前,将所述分组当前的主节点接收到的请求转发至所述理想节点。

参照图6,在本发明实施例中,所述通知模块210,进一步可以包括:

实际分布获取子模块211,用于针对集群中的每个节点以及每个分组,获取以每个所述节点为主节点的分组;

待处理分组筛选子模块212,用于根据每个分组的理想节点,从所述分组中获取理想节点与主节点不同的分组,作为待处理的分组;

通知子模块213,用于按照以每个待处理的分组的编号为参照的预设顺序,每次针对k个待处理的分组,通过所述待处理的分组的理想节点发送第一通知至所述待处理的分组当前的主节点,k为正整数。

可选地,在本发明实施例中,所述预设时间段为所述主节点有效期的2倍,每个节点的主节点续约周期小于所述主节点有效期。

参照图6,在本发明实施例中,所述主节点漂移模块220,进一步可以包括:

过期时间点获取子模块221,用于针对每个所述节点,根据所述主节点有效期的时间长度,以及每个节点得知主节点角色的起始时间,获取每个节点的主节点角色过期时间点;

过期时间点前移子模块222,用于针对每个所述节点,将所述节点的主节点角色过期时间点前移,以使所述节点中的主节点角色提前过期。

通常的master负载均衡方案的master漂移周期至少为master有效期时间、master续约周期时间与一次bemaster时间的总和,而工程中一般master有效期设置为10秒,master续约周期为2~3秒,而一次bemaster时间为10毫秒以内。而本发明的master负载均衡方案只有一次夺主propose时间,即10毫秒以内的时间。极大程度上缩短了master漂移周期。

并且通常的master负载均衡方案中,无法指定理想节点成为新的master,即新master是由所有slave节点(从节点)竞争选择,随机性很强,很大程度导致master漂移后依旧达不到负载均衡的效果。而本发明的master负载均衡方案可以尽最大可能使得master漂移到指定的理想节点上,达到每次master漂移都最大程度做到负载均衡。

此外,在本发明实施例中,通过转换master有效期的概念,把时间长度转换为时间结点的概念,通过一次propose提前让所有节点当前的master过期,并且所有非理想节点在一段时间内放弃bemaster操作,理想节点立即执行一次bemaster操作,保证尽最大可能使理想节点成为新master,并且极大程度缩短了整个周期。

另外,本发明中采用了伪master节点的概念,为了保证整个master漂移周期服务连续可用,在master漂移真正发起propose前让理想节点成为伪master,提前承担起master的责任,提前开始进行正常数据的propose,使得整个master漂移周期平滑,服务连续可用不间断。

本发明实施例提供的负载均衡处理装置能够实现图1和图3的方法实施例中实现的各个过程,为避免重复,这里不再赘述。

优选的,本发明实施例还提供了一种电子设备,包括:处理器,存储器,存储在存储器上并可在处理器上运行的计算机程序,该计算机程序被处理器执行时实现上述负载均衡处理方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。

本发明实施例还提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现上述负载均衡处理方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。其中,所述的计算机可读存储介质,如只读存储器(read-onlymemory,简称rom)、随机存取存储器(randomaccessmemory,简称ram)、磁碟或者光盘等。

图7为实现本发明各个实施例的一种电子设备的硬件结构示意图。

该电子设备500包括但不限于:射频单元501、网络模块502、音频输出单元503、输入单元504、传感器505、显示单元506、用户输入单元507、接口单元508、存储器509、处理器510、以及电源511等部件。本领域技术人员可以理解,图7中示出的电子设备结构并不构成对电子设备的限定,电子设备可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。在本发明实施例中,电子设备包括但不限于手机、平板电脑、笔记本电脑、掌上电脑、车载终端、可穿戴设备、以及计步器等。

应理解的是,本发明实施例中,射频单元501可用于收发信息或通话过程中,信号的接收和发送,具体的,将来自基站的下行数据接收后,给处理器510处理;另外,将上行的数据发送给基站。通常,射频单元501包括但不限于天线、至少一个放大器、收发信机、耦合器、低噪声放大器、双工器等。此外,射频单元501还可以通过无线通信系统与网络和其他设备通信。

电子设备通过网络模块502为用户提供了无线的宽带互联网访问,如帮助用户收发电子邮件、浏览网页和访问流式媒体等。

音频输出单元503可以将射频单元501或网络模块502接收的或者在存储器509中存储的音频数据转换成音频信号并且输出为声音。而且,音频输出单元503还可以提供与电子设备500执行的特定功能相关的音频输出(例如,呼叫信号接收声音、消息接收声音等等)。音频输出单元503包括扬声器、蜂鸣器以及受话器等。

输入单元504用于接收音频或视频信号。输入单元504可以包括图形处理器(graphicsprocessingunit,gpu)5041和麦克风5042,图形处理器5041对在视频捕获模式或图像捕获模式中由图像捕获装置(如摄像头)获得的静态图片或视频的图像数据进行处理。处理后的图像帧可以显示在显示单元506上。经图形处理器5041处理后的图像帧可以存储在存储器509(或其它存储介质)中或者经由射频单元501或网络模块502进行发送。麦克风5042可以接收声音,并且能够将这样的声音处理为音频数据。处理后的音频数据可以在电话通话模式的情况下转换为可经由射频单元501发送到移动通信基站的格式输出。

电子设备500还包括至少一种传感器505,比如光传感器、运动传感器以及其他传感器。具体地,光传感器包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板5061的亮度,接近传感器可在电子设备500移动到耳边时,关闭显示面板5061和/或背光。作为运动传感器的一种,加速计传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别电子设备姿态(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;传感器505还可以包括指纹传感器、压力传感器、虹膜传感器、分子传感器、陀螺仪、气压计、湿度计、温度计、红外线传感器等,在此不再赘述。

显示单元506用于显示由用户输入的信息或提供给用户的信息。显示单元506可包括显示面板5061,可以采用液晶显示器(liquidcrystaldisplay,lcd)、有机发光二极管(organiclight-emittingdiode,oled)等形式来配置显示面板5061。

用户输入单元507可用于接收输入的数字或字符信息,以及产生与电子设备的用户设置以及功能控制有关的键信号输入。具体地,用户输入单元507包括触控面板5071以及其他输入设备5072。触控面板5071,也称为触摸屏,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板5071上或在触控面板5071附近的操作)。触控面板5071可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器510,接收处理器510发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触控面板5071。除了触控面板5071,用户输入单元507还可以包括其他输入设备5072。具体地,其他输入设备5072可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆,在此不再赘述。

进一步的,触控面板5071可覆盖在显示面板5061上,当触控面板5071检测到在其上或附近的触摸操作后,传送给处理器510以确定触摸事件的类型,随后处理器510根据触摸事件的类型在显示面板5061上提供相应的视觉输出。虽然在图7中,触控面板5071与显示面板5061是作为两个独立的部件来实现电子设备的输入和输出功能,但是在某些实施例中,可以将触控面板5071与显示面板5061集成而实现电子设备的输入和输出功能,具体此处不做限定。

接口单元508为外部装置与电子设备500连接的接口。例如,外部装置可以包括有线或无线头戴式耳机端口、外部电源(或电池充电器)端口、有线或无线数据端口、存储卡端口、用于连接具有识别模块的装置的端口、音频输入/输出(i/o)端口、视频i/o端口、耳机端口等等。接口单元508可以用于接收来自外部装置的输入(例如,数据信息、电力等等)并且将接收到的输入传输到电子设备500内的一个或多个元件或者可以用于在电子设备500和外部装置之间传输数据。

存储器509可用于存储软件程序以及各种数据。存储器509可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器509可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。

处理器510是电子设备的控制中心,利用各种接口和线路连接整个电子设备的各个部分,通过运行或执行存储在存储器509内的软件程序和/或模块,以及调用存储在存储器509内的数据,执行电子设备的各种功能和处理数据,从而对电子设备进行整体监控。处理器510可包括一个或多个处理单元;优选的,处理器510可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器510中。

电子设备500还可以包括给各个部件供电的电源511(比如电池),优选的,电源511可以通过电源管理系统与处理器510逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。

另外,电子设备500包括一些未示出的功能模块,在此不再赘述。

需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。

上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,均属于本发明的保护之内。

本领域普通技术人员可以意识到,结合本发明实施例中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在本申请所提供的实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。

所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、rom、ram、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

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