CN115987998B - 微服务系统领袖者选举方法、系统、存储介质和电子设备 - Google Patents
微服务系统领袖者选举方法、系统、存储介质和电子设备 Download PDFInfo
- Publication number
- CN115987998B CN115987998B CN202211479417.1A CN202211479417A CN115987998B CN 115987998 B CN115987998 B CN 115987998B CN 202211479417 A CN202211479417 A CN 202211479417A CN 115987998 B CN115987998 B CN 115987998B
- Authority
- CN
- China
- Prior art keywords
- service
- leader
- service node
- efficiency
- micro
- 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.)
- Active
Links
- 238000003860 storage Methods 0.000 title claims abstract description 79
- 238000000034 method Methods 0.000 title claims abstract description 62
- 238000005457 optimization Methods 0.000 claims abstract description 14
- 238000004891 communication Methods 0.000 claims description 68
- 238000004364 calculation method Methods 0.000 claims description 49
- 238000004422 calculation algorithm Methods 0.000 claims description 25
- 230000001174 ascending effect Effects 0.000 claims description 9
- 238000012795 verification Methods 0.000 claims description 8
- 238000004590 computer program Methods 0.000 claims description 6
- 238000011156 evaluation Methods 0.000 claims description 5
- 230000008569 process Effects 0.000 description 14
- 230000004044 response Effects 0.000 description 11
- 108091026890 Coding region Proteins 0.000 description 5
- 230000009286 beneficial effect Effects 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 230000008520 organization Effects 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 238000004088 simulation Methods 0.000 description 3
- 230000007547 defect Effects 0.000 description 2
- 238000002474 experimental method Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000004904 shortening Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供一种微服务系统领袖者选举方法、系统、存储介质和电子设备,本发明提出了一种基于效能优化的微服务系统领袖者选举方法,该方法从服务节点的计算效能、存储效能、通信效能以及服务节点的编码顺序多个方面进行考虑,稳定可靠地选择出性能高的的服务节点作为领袖者,提高微服务系统的效率,从而提升全局服务性能,使得用户平均服务响应时间短。
Description
技术领域
本发明涉及微服务系统技术领域,具体涉及一种微服务系统领袖者选举方法、系统、存储介质和电子设备。
背景技术
在微服务系统中,若干个服务节点按照集群的形式组织起来对服务消费者提供服务。这些微服务节点集群的组织形式一直是当今研究的热点,目前,ZooKeeper协调组织服务框架是最为常用的,阿里、百度、京东等多个微服务系统都采用该协调组织服务框架。在微服务系统中,规定了微服务节点有三种角色,领袖者、跟随者和观察者。每一个处于微服务集群中的服务节点都必须扮演三种角色中的一种。领袖者服务节点负责对外处理核心业务请求,包括各个服务节点的管理、数据的读、写、删除等操作;跟随者服务节点只为服务消费者提供数据的读取(非事务性)服务,并参与领袖者的选举;观察者服务节点同样处理那些读取(非事务性)处理业务,不参与领袖者的选举。
领袖者作为整个ZooKeeper集群的主服务节点,是ZooKeeper中最重要的角色,负责响应所有对微服务状态变更的请求。它会将每个状态更新请求进行排序和编号,以便保证整个微服务集群内部消息处理的顺序性。在服务启动初始化的时候,需要对整个微服务集群的领袖者进行选举,自组织的选举出当前微服务集群的领袖者。
传统的在分布式系统中,采用的是快速领袖者选举算法(Fast Leader Election,FLE)选举领袖者。然而,由于微服务系统与传统的分布式系统不同,将快速领袖者选举算法运用在微服务系统,会存在以下缺陷:整个服务集群启动时,需要首先选择领袖者,其初始化启动时领袖者选举算法通过序号和编码的顺序来选择服务节点,没有考虑到每个服务节点的计算、存储和通信能力,选择流程非常单一,从而导致可能选择那些计算存储、通信能力极差的服务节点作为领袖者,导致全局服务性能较差。
通过上述描述可知,现有的领袖者选举运用在微服务系中时,可能导致选举的领袖者性能低,即现有的领袖者选举方法选择流程单一,选举的结果不稳定。
发明内容
(一)解决的技术问题
针对现有技术的不足,本发明提供了一种微服务系统领袖者选举方法、系统、存储介质和电子设备,解决了现有的领袖者选举方法选择流程单一,选举的结果不稳定的技术问题。
(二)技术方案
为实现以上目的,本发明通过以下技术方案予以实现:
第一方面,本发明提供一种微服务系统领袖者选举方法,包括:
S1、获取微服务节点集合和服务节点的效能,所述服务节点的效能包括计算效能、存储效能、通信效能;
S2、微服务节点集合中每个服务节点以选举自身作为领袖者开启第一轮投票,并进行验证,若验证通过,得到投票信息,并执行下一步;否则,重新投票;
S3、获取投票信息中的最优解集合,若最优解集合中的服务节点数量是1,则将该服务节点优先作为领袖者;当最优解集合中存在多个服务节点,且多个服务节点的所有效能均相同,则检查服务节点id,选择id最大的服务节点优先作为领袖者,否则,分别选择通信效能最大、存储效能最大、计算效能最大的服务节点优先作为领袖者;每个服务节点对以上产生的领袖者进行投票,每个服务节点产生完选举信息以后,将选举信息再以广播的形式发送到所有服务节点;
S4、统计选举信息,确定最终的领袖者。
优选的,在S3中,采用均衡种群快速收敛的多目标优化求解算法获取投票信息中的最优解集合,包括:
a、获取服务节点集合、服务效能集合和最优队列数量值K;
b、对步骤a中的参数和算法的执行参数进行初始化,具体包括:
初始化循环变量控制参数i,j,通过随机选取K个服务节点初始化三个最小值优先队列Ucomput k,Ustorage k,Ucomuni k,其中Ucomput k表示在该队列中,有K个服务节点,每个服务节点按照其计算能力大小进行升序排列;Ustorage k表示在该队列中,有K个服务节点,每个服务节点按照其存储能力大小进行升序排列;Ucomuni k示在该队列中,有K个服务节点,每个服务节点按照其通信能力大小进行升序排列;采用空值初始化用于存储临时计算结果的效能最小值优先队列UService_Perform;采用空值初始化最优解集合Pre_Leaders;
c、对每一个服务节点进行遍历,分别寻找最优计算效能、最优存储效能、最优通信效能这个三个目标的单目标的最优解,并存储到3个最小值优先队列。
d、在最小值优先队列全部生成完以后,将3个队列进行合并,去除掉重复服务节点、被支配服务节点,得到最优解集合Pre_Leaders。
优选的,所述服务节点的计算效能是指在微服务系统中,对于服务节点计算性能的评价,计算公式为:
其中,Max(FLOPS)是指服务节点集合中所有服务节点中计算能力最大的那个值,Min(FLOPS)是指服务节点集合中所有服务节点中计算能力最小的那个值;Comput_Performi是第i个计算节点的计算效能,FlOPSi是指第i个服务节点的计算能力;
和/或,
服务节点的存储效能是指在微服务系统中,对于服务节点存储性能的评价,计算公式为:
其中,Capacityi是指服务节点集合中第i个服务节点内部的所有存储容量总和,Max(Capacity)是指服务节点集合中所有服务节点中计算能力最大的那个值,Min(Capacity)是指服务节点集合中所有服务节点中计算能力最小的那个值,Storage_Performi是指第i个节点的存储效能;
和/或,
服务节点的通信效能是指在微服务系统中,对于服务节点通信性能的评价,通信效能包含连个部分,一个是输入效能Input_Perform,一个是输出效能Output_Perform;
假设第i个服务节点的所有输出带宽速度为Outputi,输入带宽速度为Inputi,则第i个服务节点的通信效能Comuni_Performi的计算方式为:
Comuni_Performi=(Input_Performi+Output_Performi)/2
其中,Max(Input)表示在服务集合中的所有服务节点的输入速度的最大值,Min(Input)表示在服务集合中的所有服务节点的输入速度的最小值,Max(Output)表示在服务集合中的所有服务节点的输出速度的最大值,Min(Output)表示在服务集合中的所有服务节点的输出速度的最小值。
优选的,所述S3包括:
S301、获取最优解集合,使得在最优解集合内部的所有服务节点,其计算、存储与通信效能分别比集合外的其它所有服务节点通信效能都要好,如果结果集合中服务节点数量为1,则将该集合的服务节点作为领袖者,转入步骤S306;
S302、在最优解集合中,检查通信效能,选择通信效能最大的服务节点优先作为领袖者,转入步骤S306;
S303、如果通信效能相同,那么就比较计算效能,在剩余服务节点集合中,选择计算效能最大的服务节点作为领袖者服务节点,转入步骤S306;
S304、如果计算效能再相同,则继续比较存储效能,在剩余服务节点集合中,选择存储效能最大的服务节点作为领袖者服务节点,转入步骤S306;
S305、如果所有效能均相同,则检查服务节点id,选择id最大的服务节点优先作为领袖者;
S306、每个服务节点对以上步骤产生的领袖者进行投票,每个服务节点产生完选举信息以后,将选举信息再以广播的形式发送到所有服务节点。
优选的,所述S4包括:
每次选举信息更新后,每个服务节点会判定选举信息、统计选举信息,检查选举信息的轮数是否与当前轮数一致、是否来自处于锁定或失效状态的服务节点;
每个节点判断自己是否已经接受到一半以上通过验证的、相同的选举信息,若是,则将该选举信息中的领袖者作为最终结果,否则,则不产生最终结果,并则转入步骤S2。
6、如权利要1~3任一所述的微服务系统领袖者选举方法,其特征在于,所述微服务系统领袖者选举方法还包括:
S5、选择领袖者距离最近的T个服务节点作为跟随者,放入到跟随者集合中。
优选的,所述微服务系统领袖者选举方法还包括:
S6、根据确定的领袖者和跟随者,更新服务器状态。
第二方面,本发明提供一种微服务系统领袖者选举系统,包括:
获取模块,用于获取微服务节点集合和服务节点的效能,所述服务节点的效能包括计算效能、存储效能、通信效能;
投票模块,用于微服务节点集合中每个服务节点以选举自身作为领袖者开启第一轮投票,并进行验证,若验证通过,得到投票信息,并执行下一步;否则,重新投票;
选举模块,用于获取投票信息中的最优解集合,若最优解集合中的服务节点数量是1,则将该服务节点优先作为领袖者;当最优解集合中存在多个服务节点,且多个服务节点的所有效能均相同,则检查服务节点id,选择id最大的服务节点优先作为领袖者,否则,分别选择通信效能最大、存储效能最大、计算效能最大的服务节点优先作为领袖者;每个服务节点对以上产生的领袖者进行投票,每个服务节点产生完选举信息以后,将选举信息再以广播的形式发送到所有服务节点;
统计模块,用于统计选举信息,确定最终的领袖者。
第三方面,本发明提供一种存储介质,其存储有用于微服务系统领袖者选举的计算机程序,其中,所述计算机程序使得计算机执行如上述所述的微服务系统领袖者选举方法。
第四方面,本发明提供一种电子设备,包括:
一个或多个处理器;
存储器;以及
一个或多个程序,其中所述一个或多个程序被存储在所述存储器中,并且被配置成由所述一个或多个处理器执行,所述程序包括用于执行如上述所述的微服务系统领袖者选举方法。
(三)有益效果
本发明提供了一种微服务系统领袖者选举方法、系统、存储介质和电子设备。与现有技术相比,具备以下有益效果:
本发明提出了一种基于效能优化的微服务系统领袖者选举方法,该方法从服务节点的计算效能、存储效能、通信效能以及服务节点的编码顺序多个方面进行考虑,稳定可靠地选择出性能高的的服务节点作为领袖者,提高微服务系统的效率,从而提升全局服务性能,使得用户平均服务响应时间短。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例一种微服务系统领袖者选举方法的框图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本申请实施例通过提供一种基于效能优化的微服务系统领袖者选举方法、系统、存储介质和电子设备,解决了现有的领袖者选举方法选择流程单一,选举的结果不稳定的技术问题,实现从服务节点的计算效能、存储效能、通信效能以及服务节点的编码顺序多个方面进行考虑,稳定可靠地选择出性能较好的服务节点作为领袖者,避免出现选举的领袖者性能不高的情况,从而提升全局服务性能,使得用户平均服务响应时间短。
本申请实施例中的技术方案为解决上述技术问题,总体思路如下:
与传统的分布式系统不同,微服务系统主要有以下2个特征。
(1)服务的运行环境更为复杂。传统的分布式系统所有服务节点往往都在一个可控的局域网内部,服务节点的性能一般是一致的,计算能力和存储能力可以满足用户的需求,而微服务系统部署非常灵活,环境非常复杂,可部署在不同区域、不同软硬件平台、不同环境等异构服务节点上,服务节点之间的计算、存储、通信性能差异巨大;
(2)服务之间的带宽限制更为严格。传统的分布式服务系统之间往往通过内部局域网进行连接,网络带宽比较大,后台数据同步的一致性要求不高,传输需求不大,因此在分布式系统的领袖者选择时往往不用考虑服务节点直接的通信问题。然而,由于微服务系统的服务节点部署在不同区域,服务之间往往时通过广域网进行连接,并且微服务系统的特点是后台服务节点数据还需要不停的进行同步和一致性操作,对带宽的占用量比较大,领袖者选择算法需要重点兼顾服务节点的通信效能。
由于微服务系统具备上述新特征,传统的分布式系统中领袖者选举运用在微服务系统中会存在较大的缺陷。以最快领袖者选举算法为例,整个服务集群启动时,需要首先选择领袖者,其初始化启动时领袖者选举算法通过序号和编码的顺序来选择服务节点。该算法中没有考虑到每个服务节点的计算、存储和通信能力,选择流程非常单一,从而导致可能选择那些计算存储、通信能力极差的服务节点作为领袖者。
本发明实施例从提高微服务系统的效率角度出发,提出了一种基于效能优化的微服务系统领袖者选举方法,该方法从服务节点的计算效能、存储效能、通信效能以及服务节点的编码顺序多个方面进行考虑,稳定可靠地选择出性能高的的服务节点作为领袖者。
为了更好的理解上述技术方案,下面将结合说明书附图以及具体的实施方式对上述技术方案进行详细的说明。
实施例:
如图1所示,本发明实施例提供一种微服务系统领袖者选举方法,该方法包括:
S1、获取微服务节点集合和服务节点的效能,所述服务节点的效能包括计算效能、存储效能、通信效能;
S2、微服务节点集合中每个服务节点以选举自身作为领袖者开启第一轮投票,并进行验证,若验证通过,得到投票信息,并执行下一步;否则,重新投票;
S3、获取投票信息中的最优解集合,若最优解集合中的服务节点数量是1,则将该服务节点优先作为领袖者;当最优解集合中存在多个服务节点,且多个服务节点的所有效能均相同,则检查服务节点id,选择id最大的服务节点优先作为领袖者,否则,分别选择通信效能最大、存储效能最大、计算效能最大的服务节点优先作为领袖者;每个服务节点对以上产生的领袖者进行投票,每个服务节点产生完选举信息以后,将选举信息再以广播的形式发送到所有服务节点;其中,所述最优解集合是指:在集合中的所有服务节点,其计算、存储与通信效能分别优于集合外的其它所有服务节点的计算、存储与通信效能;
S4、统计选举信息,确定最终的领袖者。
本发明实施例提出了一种基于效能优化的微服务系统领袖者选举方法,该方法从服务节点的计算效能、存储效能、通信效能以及服务节点的编码顺序多个方面进行考虑,稳定可靠地选择出性能高的的服务节点作为领袖者,提高微服务系统的效率,从而提升全局服务性能,使得用户平均服务响应时间短。
下面对各个步骤进行详细说明:
在步骤S1中,获取微服务节点集合和服务节点的效能,所述服务节点的效能包括计算效能、存储效能、通信效能。具体实施过程如下:
微服务节点集合是指在某一个微服务系统中,所有服务节点的集合。
本发明实施例中微服务节点集合采用Servers表示,对于一个拥有N个服务节点的微服务模型,Servers={s1,s2,...,sN}。其中si,i∈[1,N]表示第i个服务节点。每一个服务节点自带三个参数si=(idi,epochi,Service_Performi),其中,idi表示i个服务节点在微服务系统中的编号,具有唯一性;epochi表示该服务节点参与投票的迭代次数,初始化的时候会清零;Service_Performi的第i个服务节点的效能。
微服务节点集合包括服务领袖者服务节点、服务跟随者服务节点集合和服务观察者服务节点。其中:
服务领袖者服务节点是指在某一个微服务系统中,负责担任领袖者角色的服务节点,本发明实施例中服务领袖者服务节点用Leader表示。对于一个微服务系统,领袖者有且只能有一个,且Leader∈Servers。
服务跟随者服务节点是指在某一个微服务系统中,负责担任跟随者角色的服务节点。服务跟随者服务节点组成服务跟随者服务节点集合,采用Followers={f1,f2,...,fT}表示,
服务观察者服务节点是指在某一个微服务系统中,负责担任观察者角色的服务节点。服务观察者服务节点组成服务观察者服务节点集合,采用Observers表示,
服务节点的效能是指在微服务系统中,对于服务节点总体性能的评价,采用Service_Perform。效能包括服务节点的计算效能、存储效能、通信效能,Service_Perform=(Comput_Perform,Storage_Perform,Comuni_Perform)。在本发明实施例中,存储效能,通信效能全部归一量化为0到1之间的某一个特定的实数值。
其中:
服务节点的计算效能是指在微服务系统中,对于服务节点计算性能的评价,采用Comput_Perform表示。对于每一个服务节点,计算能力是指其该服务节点内总的计算能力,即单个服务节点内所有单个CPU的计算能力(指每秒所执行的浮点运算次数)之和,假设第i个服务节点的计算能力为FlOPSi。而计算效能则是对于所有服务节点的计算能力归一化后的结果。
第i个计算服务节点的计算效能的公式为:
其中,Max(FLOPS)是指服务节点集合中所有服务节点中计算能力最大的那个值,Min(FLOPS)是指服务节点集合中所有服务节点中计算能力最小的那个值。
服务节点的存储效能是指在微服务系统中,对于服务节点存储性能的评价,采用Storage_Perform表示。第i个服务节点的存储效能计算公式为:
其中,Capacityi是指服务节点集合中第i个服务节点内部的所有存储容量总和。Max(Capacity)是指服务节点集合中所有服务节点中计算能力最大的那个值,Min(Capacity)是指服务节点集合中所有服务节点中计算能力最小的那个值。
服务节点的通信效能是指在微服务系统中,对于服务节点通信性能的评价,采用Comuni_Perform表示。通信效能包含连个部分,一个是输入效能Input_Perform,一个是输出效能Output_Perform。
假设第i个服务节点的所有输出带宽速度为Outputi,输入带宽速度为Inputi,则第i个服务节点的通信效能Comuni_Performi的计算方式为:
Comuni_Performi=(Input_Performi+Output_Performi)/2
其中,Max(Input)表示在服务集合中的所有服务节点的输入速度的最大值,Min(Input)表示在服务集合中的所有服务节点的输入速度的最小值,Max(Output)表示在服务集合中的所有服务节点的输出速度的最大值,Min(Output)表示在服务集合中的所有服务节点的输出速度的最小值。
在具体实施过程中,在每个服务节点开始投票前,对所有服务节点进行初始化,将每一个服务节点的投票轮数参数初始化为0,归一化计算出服务节点计算、存储和通信效能值。
在步骤S2中,微服务节点集合中每个服务节点以选举自身作为领袖者开启第一轮投票,并进行验证,若验证通过,得到投票信息,并执行下一步;否则,重新投票。具体实施过程如下:
在完成服务节点初始化以后,每个服务节点开启第一轮投票,第一轮投票实际上就是服务节点将自带的三个参数作为投票信息以广播的形式发送给其他所有服务节点。一般的,对于服务节点i来讲,投票信息为(idi,epochi,Service_Performi),将该消息通过广播的形式发送给剩余的所有服务节点。此时的epochi=0。
所有服务节点第一轮都将收到来自其它服务节点的投票,服务节点在收到其它服务节点的投票信息后,检查投票信息的轮数是否与当前轮数一致、是否来自处于锁定或失效状态的服务节点,检验通过后,转入下一步处理。验证不通过,则重新进行广播和投票。
在步骤S3中,采用均衡种群快速收敛的多目标优化求解算法获取投票信息中的最优解集合,若最优解集合中的服务节点数量是1,则将该服务节点优先作为领袖者;当最优解集合中存在多个服务节点,且多个服务节点的所有效能均相同,则检查服务节点id,选择id最大的服务节点优先作为领袖者,否则,分别选择通信效能最大、存储效能最大、计算效能最大的服务节点优先作为领袖者;每个服务节点对以上产生的领袖者进行投票,每个服务节点产生完选举信息以后,将选举信息再以广播的形式发送到所有服务节点。其中,所述最优解集合是指:在集合中的所有服务节点,其计算、存储与通信效能分别优于集合外的其它所有服务节点的计算、存储与通信效能。具体实施过程如下:
S301、优先对比效能,本发明实施例采用均衡种群快速收敛的多目标优化求解算法寻找最优解集合Pre_Leaders,使得在Pre_Leaders内部的所有服务节点,其计算、存储与通信效能分别比集合外的其它所有服务节点通信效能都要好,则选择该服务节点集合进入下一项对比。如果结果集合中服务节点数量为1,则将该集合的服务节点作为领袖者,转入步骤S306;
均衡种群快速收敛的多目标优化求解算法具体包括:
a、获取服务节点集合Servers;服务效能集合Service_Performi=(Comput_Performi,Storage_Performi,Comuni_Performi),i∈[1,N];最优队列数量值K。
b、对步骤a中的参数和算法的执行参数进行初始化。具体包括:
初始化循环变量控制参数i,j,通过随机选取K个服务节点初始化三个最小值优先队列Ucomput k,Ustorage k,Ucomuni k,其中Ucomput k表示在该队列中,有K个服务节点,每个服务节点按照其计算能力大小进行升序排列;Ustorage k表示在该队列中,有K个服务节点,每个服务节点按照其存储能力大小进行升序排列;Ucomuni k示在该队列中,有K个服务节点,每个服务节点按照其通信能力大小进行升序排列。采用空值初始化用于存储临时计算结果的效能最小值优先队列UService_Perform。采用空值初始化结果集合Pre_Leaders。
c、对每一个服务节点进行遍历,分别寻找最优计算效能、最优存储效能、最优通信效能这个三个目标的单目标的最优解,并存储到3个最小值优先队列。具体包括:
是对每一个服务节点(假设为Serveri)进行遍历,分别寻找单个目标的最优解,存储到3个最小值优先队列中。以对Ucomput k最小值优先队列为例,首先以该队列的第一个服务节点的计算效能值进行比较,如果该计算效能值比新的Serveri的计算效能值还大,由于该队列是按照计算效能值大小从小到大排列,则表明该队列中的所有服务节点的计算能力都要高于该Serveri计算能力,因此该Serveri就被放弃,进入下一个循环。反之,则表明该服务节点的值介于最小值优先队列中两个服务节点计算效能值中间,将该服务节点插入到这个队列的这两个服务节点之间。Ustorage k,Ucomuni k的优先队列生成过程也类似,此处不再赘述。
d、在最小值优先队列全部生成完以后,将3个队列进行合并,去除掉重复服务节点、被支配服务节点,就得到了该算法的最优解集合Pre_Leaders。
为了方便进一步理解本发明实施例中的均衡种群快速收敛的多目标优化求解算法,下面附上算法的部分代码,具体如表1所示。
表1均衡种群快速收敛的多目标优化求解算法的部分代码
/>
S302、在最优解Pre_Leaders集合中,检查通信效能。选择通信效能最大的服务节点优先作为领袖者,转入步骤S306;
S303、如果通信效能相同,那么就比较计算效能。在剩余服务节点集合中,选择计算效能最大的服务节点作为领袖者服务节点,转入步骤S306;
S304、如果计算效能再相同,则继续比较存储效能。在剩余服务节点集合中,选择存储效能最大的服务节点作为领袖者服务节点,转入步骤S306;
S305、如果所有效能均相同,则检查服务节点id。选择id最大的服务节点优先作为领袖者;
S306、每个服务节点对以上步骤产生的领袖者进行投票,每个服务节点产生完选举信息以后,将选举信息再以广播的形式发送到所有服务节点。
在步骤S4中,统计选举信息,确定最终的领袖者。具体实施过程如下:
每次选举信息更新后,每个服务节点会判定选举信息、统计选举信息,检查选举信息的轮数是否与当前轮数一致、是否来自处于锁定或失效状态的服务节点。每个节点判断自己是否已经接受到一半以上通过验证的、相同的选举信息,如果是,则将该选举信息中的领袖者作为最终结果,如果不是,则不产生最终结果。如果不少于半数的节点服务器产生了相同的最终结果,便认为已经选出了领袖者。如果没有选举出领袖者,则转入步骤S2,对于所有节点,epochi=epochi+1。
在具体实施过程中,还包括步骤S5、选择领袖者距离最近的T个服务节点作为跟随者,放入到跟随者集合中。
在具体实施过程中,还包括步骤S6、根据确定的领袖者和跟随者,更新服务器状态。具体实施过程如下:
一旦确定了领袖者、跟随者,每个服务节点就会根据选举结果更新自己的状态。如果是跟随者,那么就变更为FOLLOWING,如果是领袖者,就变更为LEADING。
下面通过仿真实验验证本发明实施例的有效性:
数据集:本实验采用仿真数据集合,假设在网络空间中存在50个服务节点的微服务系统集群。每个服务节点都随机的赋予一定的存储、计算和通信能力,服务节点按照1到50随机赋予id编号。K的取值为10。
50个服务节点的微服务系统开始投入使用时,需要对领袖者进行选举,运用本发明实施例中提出的算法进行计算,通过对比目前比较流行的Zookeeper中的快速领袖者选举算法(Fast Leader Election,FLE),模拟1000个用户对服务提出读写请求,每个用户随机产生读数据和写数据两种需求,读数据操作需求都需要0.1个单位的服务节点计算、存储和通信资源,写数据操作需求需要0.2个单位的服务节点计算、存储资源,0.1个单位的通信资源。通过衡量用户平均服务响应时间参数来衡量算法的优劣,平均服务响应时间越短越好。
用户平均服务响应时间是指用户从提出服务请求到服务完成的平均时间,本文实验中是指这1000个用户,每个用户分别提出了X个服务请求的平均服务响应等待时间,即每个用户每次服务请求完成所需要的平均时间。仿真实验的实验结果见表2。
表2仿真实验的实验结果:
从表中可以看出,随着每个用户提出的请求数量的增加,这1000个用户平均服务响应时间都在减少,但是,本发实施例提出的算法明显减少更快,效率更好。而FLE算法由于没有对服务节点的效能进行考虑,导致可能选取到性能不高的服务节点作为领袖者,影响全局服务性能,使得用户平均服务响应时间长。
本发明实施例还提供一种微服务系统领袖者选举系统,包括:
获取模块,用于获取微服务节点集合和服务节点的效能,所述服务节点的效能包括计算效能、存储效能、通信效能;
投票模块,用于微服务节点集合中每个服务节点以选举自身作为领袖者开启第一轮投票,并进行验证,若验证通过,得到投票信息,并执行下一步;否则,重新投票;
选举模块,用于获取投票信息中的最优解集合,若最优解集合中的服务节点数量是1,则将该服务节点优先作为领袖者;当最优解集合中存在多个服务节点,且多个服务节点的所有效能均相同,则检查服务节点id,选择id最大的服务节点优先作为领袖者,否则,分别选择通信效能最大、存储效能最大、计算效能最大的服务节点优先作为领袖者;每个服务节点对以上产生的领袖者进行投票,每个服务节点产生完选举信息以后,将选举信息再以广播的形式发送到所有服务节点;
统计模块,用于统计选举信息,确定最终的领袖者。
可理解的是,本发明实施例提供的微服务系统领袖者选举系统与上述微服务系统领袖者选举方法相对应,其有关内容的解释、举例、有益效果等部分可以参考微服务系统领袖者选举方法中的相应内容,此处不再赘述。
本发明实施例还提供一种计算机可读存储介质,其存储用于微服务系统领袖者选举的计算机程序,其中,所述计算机程序使得计算机执行如上述所述的微服务系统领袖者选举方法。
本发明实施例还提供一种电子设备,包括:
一个或多个处理器;
存储器;以及
一个或多个程序,其中所述一个或多个程序被存储在所述存储器中,并且被配置成由所述一个或多个处理器执行,所述程序包括用于执行如上述所述的微服务系统领袖者选举方法。
综上所述,与现有技术相比,具备以下有益效果:
1、本发明实施例提出了一种基于效能优化的微服务系统领袖者选举方法,该方法从服务节点的计算效能、存储效能、通信效能以及服务节点的编码顺序多个方面进行考虑,稳定可靠地选择出性能高的的服务节点作为领袖者,提高微服务系统的效率,从而提升全局服务性能,使得用户平均服务响应时间短。
2、本发明实施例提出了一种均衡种群快速收敛的多目标优化求解算法,加快领袖者选举速度。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种微服务系统领袖者选举方法,其特征在于,包括:
S1、获取微服务节点集合和服务节点的效能,所述服务节点的效能包括计算效能、存储效能、通信效能;
S2、微服务节点集合中每个服务节点以选举自身作为领袖者开启第一轮投票,并进行验证,若验证通过,得到投票信息,并执行下一步;否则,重新投票;
S3、获取投票信息中的最优解集合,若最优解集合中的服务节点数量是1,则将该服务节点优先作为领袖者;当最优解集合中存在多个服务节点,且多个服务节点的所有效能均相同,则检查服务节点id,选择id最大的服务节点优先作为领袖者,否则,分别选择通信效能最大、存储效能最大、计算效能最大的服务节点优先作为领袖者;每个服务节点对以上产生的领袖者进行投票,每个服务节点产生完选举信息以后,将选举信息再以广播的形式发送到所有服务节点;
S4、统计选举信息,确定最终的领袖者。
2.如权利要求1所述的微服务系统领袖者选举方法,其特征在于,在S3中,采用均衡种群快速收敛的多目标优化求解算法获取投票信息中的最优解集合,包括:
a、获取服务节点集合、服务效能集合和最优队列数量值K;
b、对步骤a中的参数和算法的执行参数进行初始化,具体包括:
初始化循环变量控制参数i,j,通过随机选取K个服务节点初始化三个最小值优先队列Ucomput k,Ustorage k,Ucomuni k,其中Ucomput k表示在该队列中,有K个服务节点,每个服务节点按照其计算能力大小进行升序排列;Ustorage k表示在该队列中,有K个服务节点,每个服务节点按照其存储能力大小进行升序排列;Ucomuni k示在该队列中,有K个服务节点,每个服务节点按照其通信能力大小进行升序排列;采用空值初始化用于存储临时计算结果的效能最小值优先队列UService_Perform;采用空值初始化最优解集合Pre_Leaders;
c、对每一个服务节点进行遍历,分别寻找最优计算效能、最优存储效能、最优通信效能这个三个目标的单目标的最优解,并存储到3个最小值优先队列;
d、在最小值优先队列全部生成完以后,将3个队列进行合并,去除掉重复服务节点、被支配服务节点,得到最优解集合Pre_Leaders。
3.如权利要求1所述的微服务系统领袖者选举方法,其特征在于,
所述服务节点的计算效能是指在微服务系统中,对于服务节点计算性能的评价,计算公式为:
其中,Max(FLOPS)是指服务节点集合中所有服务节点中计算能力最大的那个值,Min(FLOPS)是指服务节点集合中所有服务节点中计算能力最小的那个值;Comput_Performi是第i个计算节点的计算效能,FlOPSi是指第i个服务节点的计算能力;
和/或,
服务节点的存储效能是指在微服务系统中,对于服务节点存储性能的评价,计算公式为:
其中,Capacityi是指服务节点集合中第i个服务节点内部的所有存储容量总和,Max(Capacity)是指服务节点集合中所有服务节点中计算能力最大的那个值,Min(Capacity)是指服务节点集合中所有服务节点中计算能力最小的那个值,Storage_Performi是指第i个节点的存储效能;
和/或,
服务节点的通信效能是指在微服务系统中,对于服务节点通信性能的评价,通信效能包含连个部分,一个是输入效能Input_Perform,一个是输出效能Output_Perform;
假设第i个服务节点的所有输出带宽速度为Outputi,输入带宽速度为Inputi,则第i个服务节点的通信效能Comuni_Performi的计算方式为:
Comuni_Performi=(Input_Performi+Output_Performi)/2
其中,Max(Input)表示在服务集合中的所有服务节点的输入速度的最大值,Min(Input)表示在服务集合中的所有服务节点的输入速度的最小值,Max(Output)表示在服务集合中的所有服务节点的输出速度的最大值,Min(Output)表示在服务集合中的所有服务节点的输出速度的最小值。
4.如权利要求1~3任一所述的微服务系统领袖者选举方法,其特征在于,所述S3包括:
S301、获取最优解集合,使得在最优解集合内部的所有服务节点,其计算、存储与通信效能分别比集合外的其它所有服务节点通信效能都要好,如果结果集合中服务节点数量为1,则将该集合的服务节点作为领袖者,转入步骤S306;
S302、在最优解集合中,检查通信效能,选择通信效能最大的服务节点优先作为领袖者,转入步骤S306;
S303、如果通信效能相同,那么就比较计算效能,在剩余服务节点集合中,选择计算效能最大的服务节点作为领袖者服务节点,转入步骤S306;
S304、如果计算效能再相同,则继续比较存储效能,在剩余服务节点集合中,选择存储效能最大的服务节点作为领袖者服务节点,转入步骤S306;
S305、如果所有效能均相同,则检查服务节点id,选择id最大的服务节点优先作为领袖者;
S306、每个服务节点对以上步骤产生的领袖者进行投票,每个服务节点产生完选举信息以后,将选举信息再以广播的形式发送到所有服务节点。
5.如权利要求1~3任一所述的微服务系统领袖者选举方法,其特征在于,所述S4包括:
每次选举信息更新后,每个服务节点会判定选举信息、统计选举信息,检查选举信息的轮数是否与当前轮数一致、是否来自处于锁定或失效状态的服务节点;
每个节点判断自己是否已经接受到一半以上通过验证的、相同的选举信息,若是,则将该选举信息中的领袖者作为最终结果,否则,则不产生最终结果,并则转入步骤S2。
6.如权利要求1~3任一所述的微服务系统领袖者选举方法,其特征在于,所述微服务系统领袖者选举方法还包括:
S5、选择领袖者距离最近的T个服务节点作为跟随者,放入到跟随者集合中。
7.如权利要求6所述的微服务系统领袖者选举方法,其特征在于,所述微服务系统领袖者选举方法还包括:
S6、根据确定的领袖者和跟随者,更新服务器状态。
8.一种微服务系统领袖者选举系统,其特征在于,包括:
获取模块,用于获取微服务节点集合和服务节点的效能,所述服务节点的效能包括计算效能、存储效能、通信效能;
投票模块,用于微服务节点集合中每个服务节点以选举自身作为领袖者开启第一轮投票,并进行验证,若验证通过,得到投票信息,并执行下一步;否则,重新投票;
选举模块,用于获取投票信息中的最优解集合,若最优解集合中的服务节点数量是1,则将该服务节点优先作为领袖者;当最优解集合中存在多个服务节点,且多个服务节点的所有效能均相同,则检查服务节点id,选择id最大的服务节点优先作为领袖者,否则,分别选择通信效能最大、存储效能最大、计算效能最大的服务节点优先作为领袖者;每个服务节点对以上产生的领袖者进行投票,每个服务节点产生完选举信息以后,将选举信息再以广播的形式发送到所有服务节点;
统计模块,用于统计选举信息,确定最终的领袖者。
9.一种存储介质,其特征在于,其存储有用于微服务系统领袖者选举的计算机程序,其中,所述计算机程序使得计算机执行如权利要求1~7任一项所述的微服务系统领袖者选举方法。
10.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储器;以及
一个或多个程序,其中所述一个或多个程序被存储在所述存储器中,并且被配置成由所述一个或多个处理器执行,所述程序包括用于执行如权利要求1~7任一项所述的微服务系统领袖者选举方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211479417.1A CN115987998B (zh) | 2022-11-24 | 2022-11-24 | 微服务系统领袖者选举方法、系统、存储介质和电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211479417.1A CN115987998B (zh) | 2022-11-24 | 2022-11-24 | 微服务系统领袖者选举方法、系统、存储介质和电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115987998A CN115987998A (zh) | 2023-04-18 |
CN115987998B true CN115987998B (zh) | 2024-05-03 |
Family
ID=85971195
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211479417.1A Active CN115987998B (zh) | 2022-11-24 | 2022-11-24 | 微服务系统领袖者选举方法、系统、存储介质和电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115987998B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111324429A (zh) * | 2019-10-09 | 2020-06-23 | 中国人民解放军国防科技大学 | 一种基于多代血统参考距离的微服务组合调度方法 |
CN111447097A (zh) * | 2020-04-20 | 2020-07-24 | 国网甘肃省电力公司信息通信公司 | 一种云平台资源调度管理方法及系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11593210B2 (en) * | 2020-12-29 | 2023-02-28 | Hewlett Packard Enterprise Development Lp | Leader election in a distributed system based on node weight and leadership priority based on network performance |
-
2022
- 2022-11-24 CN CN202211479417.1A patent/CN115987998B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111324429A (zh) * | 2019-10-09 | 2020-06-23 | 中国人民解放军国防科技大学 | 一种基于多代血统参考距离的微服务组合调度方法 |
CN111447097A (zh) * | 2020-04-20 | 2020-07-24 | 国网甘肃省电力公司信息通信公司 | 一种云平台资源调度管理方法及系统 |
Non-Patent Citations (2)
Title |
---|
基于进化多目标优化的微服务组合部署与调度策略;马武彬;王锐;王威超;吴亚辉;邓苏;黄宏斌;;系统工程与电子技术;20190924;42(01);全文 * |
意图驱动的网络自动化管理关键技术研究;于银菠;《博士电子期刊》;20220615;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN115987998A (zh) | 2023-04-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111027736B (zh) | 多目标优化下的微服务组合部署与调度方法 | |
US9807152B2 (en) | Distributed processing device and distributed processing system as well as distributed processing method | |
CN109660367B (zh) | 基于改进Raft算法的共识达成方法、装置与电子设备 | |
CN110502323B (zh) | 一种云计算任务实时调度方法 | |
CN112416585A (zh) | 面向深度学习的gpu资源管理与智能化调度方法 | |
CN112187866B (zh) | 一种基于共享存储的新型区块链共识方法 | |
CN110362380A (zh) | 一种面向网络靶场的多目标优化虚拟机部署方法 | |
CN111666179A (zh) | 一种多点数据容灾的智能复制系统及服务器 | |
WO2024037368A1 (zh) | 调度装置的调度优化方法、调度装置和存储介质 | |
CN116669111A (zh) | 一种基于区块链的移动边缘计算任务卸载方法 | |
CN109358964B (zh) | 一种服务器集群资源调度方法 | |
WO2024113956A1 (zh) | 节点选取方法、装置、第一节点、存储介质及程序产品 | |
CN107257356B (zh) | 一种基于超图分割的社交用户数据优化放置方法 | |
CN115987998B (zh) | 微服务系统领袖者选举方法、系统、存储介质和电子设备 | |
Ho et al. | Adaptive communication for distributed deep learning on commodity GPU cluster | |
CN116932198A (zh) | 资源调度方法、装置、电子设备及可读存储介质 | |
CN115016911A (zh) | 面向大规模联邦学习的任务编排方法、装置、设备和介质 | |
CN116339932A (zh) | 资源调度方法、装置和服务器 | |
CN114363988A (zh) | 分簇方法、装置和电子设备 | |
CN108520053B (zh) | 一种基于数据分布的大数据查询方法 | |
CN116760837B (zh) | 一种基于联邦学习和权益选举的分布式共识方法及系统 | |
CN117251276B (zh) | 一种面向协作学习平台的灵活调度方法及装置 | |
CN117812564B (zh) | 一种应用于车联网的联邦学习方法、装置、设备及介质 | |
CN115774736B (zh) | 一种数据延迟发送的numa架构时变图处理方法与装置 | |
CN110427763B (zh) | 一种基于预定义执行代码的分布式系统的共识方法 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |