CN115801626A - 大规模广域分布式集群成员失效检测方法及*** - Google Patents
大规模广域分布式集群成员失效检测方法及*** Download PDFInfo
- Publication number
- CN115801626A CN115801626A CN202310079050.2A CN202310079050A CN115801626A CN 115801626 A CN115801626 A CN 115801626A CN 202310079050 A CN202310079050 A CN 202310079050A CN 115801626 A CN115801626 A CN 115801626A
- Authority
- CN
- China
- Prior art keywords
- detection
- members
- failure
- area
- heartbeat
- 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.)
- Granted
Links
- 238000001514 detection method Methods 0.000 title claims abstract description 308
- 230000004083 survival effect Effects 0.000 claims abstract description 64
- 238000000034 method Methods 0.000 claims abstract description 45
- 230000004044 response Effects 0.000 claims description 28
- 238000004891 communication Methods 0.000 claims description 27
- 230000008569 process Effects 0.000 claims description 22
- 230000001360 synchronised effect Effects 0.000 claims description 8
- 230000008859 change Effects 0.000 claims description 7
- 238000012544 monitoring process Methods 0.000 claims description 4
- 238000010586 diagram Methods 0.000 description 8
- 238000004590 computer program Methods 0.000 description 6
- 238000012545 processing Methods 0.000 description 6
- 238000004364 calculation method Methods 0.000 description 5
- 238000012790 confirmation Methods 0.000 description 5
- 238000012360 testing method Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 238000005192 partition Methods 0.000 description 3
- 241001522296 Erithacus rubecula Species 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 239000003999 initiator Substances 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Images
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
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/70—Reducing energy consumption in communication networks in wireless communication networks
Landscapes
- Debugging And Monitoring (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种大规模广域分布式集群成员失效检测方法及***,首先根据网络通信延迟将集群划分为若干个检测区域,保证各个检测区域内部的成员之间为低延时通信,检测区域内的成员周期性地检测该成员所属检测区域的其他成员的存活状态,使得对每个检测区域内的成员进行失效检测时,能够快速、准确。然后在每个检测区域选定领导者来记录各检测区域内所有成员的存活状态,并定期与其他检测区域的领导者同步所有集群成员的存活状态,保证集群成员存活状态的完备性。与现有技术相比,适用于大规模广域分布式集群的成员失效检测,检测结果准确,检测效率高。
Description
技术领域
本发明涉及计算机网络与分布式***技术领域,尤其涉及的是一种大规模广域分布式集群成员失效检测方法及***。
背景技术
分布式集群是实现高可用、高性能服务的一种主要方式,在云计算、大数据和人工智能领域尤其常见。分布式集群通常是由TCP/IP协议网络连接的多个计算节点组成,其成员来源多样,包括公有云、私有云、自建机房或者数据中心等。由于分布式集群存在硬件故障、软件缺陷、配置错误或者人为操作失误等因素,不可避免地会出现部分成员的意外失效。分布式集群管理必须及时检出意外失效的成员,重新调度因为该成员意外失效而未完成的计算任务,保证集群正常工作。
通常采用心跳机制对集群成员是否失效进行检测,即定期向被检测成员发送一个心跳信号,如果能在规定时间期限内收到该成员的响应,则被检测成员视为工作正常,否则判断为意外失效。
失效检测方法通常分为集中式和完全分布式(点对点)两类,集中式的特点是集群中只包含一个集中的检测组件,它定期向每个成员发送心跳信号;后者的特点是每个成员都定期向其他成员发送心跳信号。
然而在广域分布式集群中,并非所有成员之间都是低延迟高速网络连接,存在部分延迟相对较高的广域网连接。广域分布式集群极有可能出现网络包延误、乱序、重复或者丢失的情况,甚至存在网络分区,即整个集群分成互不连通的两个独立分区,导致很可能因为没有及时收到心跳响应而误判被检成员已经失效,造成集群资源的浪费。其次,如果分布式集群规模较大,包含上万甚至几十万成员,它存在成员意外失效的可能更高,所需的心跳通信量非常大。因此,对于大规模广域分布式集群,现有的失效检测方法的检测结果不准确、效率较低。
发明内容
本发明的主要目的在于提供一种大规模广域分布式集群成员失效检测方法、***、智能终端及计算机可读存储介质,旨在解决现有技术中的失效检测方法应用在大规模广域分布式集群上时检测结果不准确、效率较低的问题。
为了实现上述目的,本发明第一方面提供一种大规模广域分布式集群成员失效检测方法,包括:
检测分布式集群各成员之间的网络通信延迟,根据网络通信延迟将分布式集群划分为若干个检测区域;
基于设定规则,在每个检测区域选定一个成员作为领导者,所述领导者用于记录该领导者所属检测区域的所有成员的存活状态;
每个检测区域的每一个成员周期性地检测该成员所属检测区域的其他成员的存活状态,并将检测结果传输至该成员所属检测区域的领导者;
所有检测区域的领导者定期同步集群成员的存活状态,获得集群成员的失效检测结果。
可选的,所述每个检测区域的每一个成员周期性检测该成员所属检测区域的其他成员的存活状态,包括:
获取所述成员对应的其他成员列表;
对所述其他成员列表中的每个成员依次进行心跳检测;
当对所述其他成员列表中所有成员均完成心跳检测时,对所述其他成员列表进行随机重排序;
对更新后的其他成员列表进行下一周期的心跳检测。
可选的,所述对所述其他成员列表中的每个成员依次进行心跳检测,包括:
当在网络包往返最坏情况耗时内收到所述其他成员列表中被检测成员的心跳响应包时,则设定所述被检测成员的存活状态为有效;
当检测周期结束仍未收到所述被检测成员的心跳响应包时,则发送协助检测心跳检测包至协助失效检测群组以对所述被检测成员进行心跳检测,所述协助失效检测群组由所述其他成员列表中的成员组成;
当在网络包往返最坏情况耗时内还未收到所述协助失效检测群组的心跳响应包时,设定所述被检测成员的存活状态为失效;否则,设定所述被检测成员的存活状态为有效。
可选的,根据误报概率、成员失效概率、所属检测区域的网络丢包概率确定协助失效检测群组的大小,具体表达式为:
可选的,所述所有检测区域的领导者定期同步集群成员的存活状态,包括:
从所有的领导者中随机选取预设数量的领导者;
基于谣传路由协议,在已选取的领导者之间同步集群成员的存活状态。
本发明第二方面提供一种大规模广域分布式集群成员失效检测***,其中,上述***包括:
若干个检测区域,每个检测区域设有一个领导者和若干成员,每个检测区域内为低延时通信网络;
所述领导者用于管理领导者所属检测区域的成员状态,定期与其他检测区域的领导者同步集群成员状态;
所述成员上设有失效检测组件,所述失效检测组件用于周期性地检测其他成员的存活状态,响应其他成员的心跳检测请求以及协助其他成员检测第三方成员的存活状态;
所述成员上还设有成员队列管理组件,所述成员队列管理组件用于监听领导者广播的成员变化消息并更新所述成员上的其他成员列表。
可选的,所述成员上还设有协助失效检测群组,所述协助失效检测群组用于在所述成员检测其他成员的存活状态时,若超时未获得心跳响应包,所述成员发送协助检测心跳检测包至所述协助失效检测群组以协助对所述其他成员进行心跳检测。
本发明第三方面提供一种智能终端,上述智能终端包括存储器、处理器以及存储在上述存储器上并可在上述处理器上运行的大规模广域分布式集群成员失效检测程序,上述大规模广域分布式集群成员失效检测程序被上述处理器执行时实现任意一项上述大规模广域分布式集群成员失效检测方法的步骤。
本发明第四方面提供一种计算机可读存储介质,上述计算机可读存储介质上存储有大规模广域分布式集群成员失效检测程序,上述大规模广域分布式集群成员失效检测程序被处理器执行时实现任意一项上述大规模广域分布式集群成员失效检测方法的步骤。
由上可见,本发明首先根据网络通信延迟将集群划分为若干个检测区域,保证各个检测区域内部的成员之间为低延时通信,检测区域内的成员周期性地检测该成员所属检测区域的其他成员的存活状态,使得对每个检测区域内的成员进行失效检测时,能够快速、准确。然后在每个检测区域选定领导者来记录各检测区域内所有成员的存活状态,并定期与其他检测区域的领导者同步所有集群成员的存活状态,保证集群成员存活状态的完备性。与现有技术相比,适用于大规模广域分布式集群的成员失效检测,检测结果准确,检测效率高。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附图。
图1为本发明实施例提供的大规模广域分布式集群成员失效检测方法流程示意图;
图2为图1实施例的大规模广域分布式集群的检测区域划分示意图;
图3为图1实施例的步骤S300的具体流程示意图;
图4为图1实施例的轮转随机化失效检测方法示意图;
图5为图3实施例的步骤S320的具体流程示意图;
图6为本发明实施例提供的大规模广域分布式集群成员失效检测***的结构示意图;
图7为图6实施例的队列管理组件的功能框图;
图8是本发明实施例提供的一种智能终端的内部结构原理框图。
实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定***结构、技术之类的具体细节,以便透彻理解本发明实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本发明。在其它情况下,省略对众所周知的***、装置、电路以及方法的详细说明,以免不必要的细节妨碍本发明的描述。
应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在本发明说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本发明。如在本发明说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
还应当进一步理解,在本发明说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
如在本说明书和所附权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当…时”或“一旦”或“响应于确定”或“响应于检测到”。类似的,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述的条件或事件]”或“响应于检测到[所描述条件或事件]”。
下面结合本发明实施例的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是本发明还可以采用其它不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本发明内涵的情况下做类似推广,因此本发明不受下面公开的具体实施例的限制。
在广域分布式集群中,极有可能出现网络包延误、乱序、重复或者丢失的情况,甚至整个集群分成互不连通的两个独立分区;并且,分布式集群规模较大,所需的心跳通信量非常大。因此广域分布式集群的失效检测方法必须同时具备快速、准确和完备的特点。而现有的集中式失效检测方法存在性能瓶颈和单点失效的问题,完全分布式失效检测方法存在收敛速度慢,准确性低的问题,因此,现有的失效检测方法应用在广域分布式集群时,存在检测结果不准确、效率较低的问题。
针对上述技术问题,本发明提供了一种用于大规模广域分布式集群的成员失效检测方法,扩展性强、检测过程收敛速度快、结果误报或失效漏检比例低。
示例性方法
本发明实施例提供一种用于大规模广域分布式集群的成员失效检测方法,部署于电脑、服务器等电子设备上。具体的,如图1所示,上述方法包括如下步骤:
步骤S100:检测分布式集群各成员之间的网络通信延迟,根据网络通信延迟将分布式集群划分为若干个检测区域;
具体地,对分布式集群各成员之间的网络通信进行测试,根据测试获得的网络通信延迟数据按照设定的规则将分布式集群划分为若干个检测区域。如将互相之间网络通信延迟小于10毫秒的成员聚在一起,划分为一个检测区域。
参考图2所示的大规模广域分布式集群的区域划分,本实施例根据属于同一个检测区域的不同成员彼此之间的网络通信延迟不能超过10毫秒的设定规则,将分布式集群划分为两个检测区域,每个检测区域内的成员之间都为低延时通信,不同检测区域之间为高延时通信(当然,也可以为低延时通信)。
位于同一个数据中心或者地理位置相邻数据中心的计算节点之间的网络连接一般能够满足低延时通信的要求,通常可以将这些计算节点划为同一个检测区域。
步骤S200:基于设定规则,在每个检测区域选定一个成员作为领导者,所述领导者用于记录该领导者所属检测区域的所有成员的存活状态;
具体地,设定规则为对领导者的性能要求,如CPU至少包含2核、内存容量至少有8GB、磁盘容量超过100GB等。从每一个检测区域中符合性能要求的成员中选出一个高性能的节点作为领导者。领导者默认为各个检测区域的第一个成员。领导者能够记录本检测区域所有成员的存活状态,存活状态分为有效和失效。导致失效的原因可能有:主动退出、意外等。领导者还对所属检测区域的成员进行管理,当有成员加入或者离开本区域时,都要通过领导者完成,并通过领导者通知领导者所在检测区域内的其他成员以更新成员列表。
优选如本实施例所示,领导者的CPU在8核以上,内存容量高于32GB,硬盘为容量高于100GB的固态硬盘。
步骤S300:每个检测区域的每一个成员周期性地检测该成员所属检测区域的其他成员的存活状态,并将检测结果传输至该成员所属检测区域的领导者;
具体地,属于同一个检测区域的所有成员周期性地对所属检测区域的其他成员进行心跳检测,判断本检测区域是否存在失效的成员,并将失效的成员发送至本检测区域的领导者,以实时记录本检测区域的成员的存活状态。
如图3所示,本实施例中采用轮转随机化检测方法周期性检测所属检测区域的其他成员的存活状态,具体步骤包括:
步骤S310:获取成员对应的其他成员列表;
具体地,确定每个检测区域的领导者后以及新成员加入一个检测区域时,领导者会将本检测区域的成员列表发送至每个成员,每个成员收到该成员列表后将自己从中删除,就获得与每个成员相对应的其他成员列表,并将其他成员列表存储在成员节点上或保存在成员节点的内存中以随时获取。后期接收到领导者广播的成员变化消息时,将新成员添加到其他成员列表的随机位置或者从其他成员列表中删除失效的成员,以对其他成员列表进行更新。
步骤S320:对其他成员列表中的每个成员依次进行心跳检测;
步骤S330:当对其他成员列表中所有成员均完成心跳检测时,对其他成员列表进行随机重排序;
步骤S340:对更新后的其他成员列表进行下一周期的心跳检测。
具体地,属于同一个检测区域的每一个成员,按照该成员对应的其他成员列表中的成员顺序,依次对其他成员进行心跳检测。每次检测一个成员,耗时一个检测周期。每检测完一轮,随机重排其他成员列表中的成员位置,再从头开始进行下一轮的成员状态检测。
轮转随机化方法检测方法的前提条件是每一个成员都有稳定的本地时钟,也就是这一秒和下一秒的时长应该几乎不差。与现有技术不同的是,并没有要求存在全局时钟,即没有要求所有检测区域成员的时钟是同步的。
如图4所示,以区域1的成员1为例,第一轮时成员1 的其他成员列表是成员2,成员3, …, 成员m。成员1按照队列顺序每个检测周期心跳检测一个成员,当其他成员列表中所有的成员均检测完毕,完成一轮心跳检测。第一轮完成后,随机重排其他成员列表,变成成员6, 成员m, …, 成员3。成员1按照重新排列后的顺序每个检测周期心跳检测一个成员,完成下一轮心跳检测。如此往复循环进行成员检测。
步骤S400:所有检测区域的领导者定期同步集群成员的存活状态,获得集群成员的失效检测结果。
具体地,同一个集群中所有检测区域的领导者共同组成一个群组,每一个领导者每隔500毫秒从群组中随机选择4个其他领导者,向它们发送本周期内该领导者新收到的成员失效消息。使得每个领导者都保存集群所有成员存活状态的一份副本,并且基于谣传路由协议保证了多副本的一致性,这种多副本机制保证了集群管理服务的高可用性。其中,谣传周期(本实施例为500毫秒)、谣传节点个数(本实施例为4个)可以根据广域分布式集群的通信状况、节点个数作相应的设定,具体不做限制。通过随机选择4个领导者与当前领导者同步集群成员的存活状态,采用小范围同步集群成员的存活状态,而不是一个领导者与其余所有领导者同步集群成员的存活状态,不仅可以保证集群成员的失效检测结果的完备性和准确性,而且能够减少同步的通信量。
由上所述,本实施例首先根据网络通信延迟将集群划分为若干个检测区域,保证各个检测区域内部的成员之间为低延时通信,检测区域内的成员周期性地检测该成员所属检测区域的其他成员的存活状态,使得对每个检测区域内的成员进行失效检测时,能够快速、准确。然后在每个检测区域选定领导者来记录各检测区域内所有成员的存活状态,并定期与其他检测区域的领导者同步所有集群成员的存活状态,保证集群成员存活状态的完备性。因此,适用于大规模广域分布式集群的成员失效检测,扩展性强、检测过程收敛速度快、结果误报或失效漏检比例低。
如图5所示,在一些实施例中,对其他成员列表中的每个成员依次进行心跳检测,具体包括如下步骤:
步骤S321:当在网络包往返最坏情况耗时内收到其他成员列表中被检测成员的心跳响应包时,则设定被检测成员的存活状态为有效;
具体地,网络包往返最坏情况耗时根据检测区域的网络实际情况、经验和实验数据来确定。网络包往返最坏情况耗时比图4中的检测周期长。当在网络包往返最坏情况耗时内或者检测周期时长内收到被检测成员的心跳响应包时,则表明该被检测成员的存活状态为有效。
本实施例中,为了使得检测的效率更高,根据允许检测过程最大耗时的期望值、成员失效概率确定检测周期的时长,具体表达式为:,,其中,为成员失效概率;为允许检测过程最大耗时的期望值。允许检测过程最大耗时期望值可以依据经验或检测需求确定,也可以采用计算公式:来准确量化计算,其中表示的是成员从开始失效到它被检出的耗时的上限,代表本检测区域的所有成员,代表本检测区域的成员总数。
步骤S322:当检测周期结束仍未收到被检测成员的心跳响应包时,则发送协助检测心跳检测包至协助失效检测群组以对被检测成员进行心跳检测,所述协助失效检测群组由其他成员列表中的成员组成。
步骤S323:当在网络包往返最坏情况耗时内还未收到协助失效检测群组的心跳响应包时,设定被检测成员的存活状态为失效;否则,设定被检测成员的存活状态为有效。
具体地,如图4所示,成员1向被检测成员2发送心跳检测包后,等待一个检测周期,当检测周期结束仍未收到被检测成员2的心跳响应包时,为了保证检测的准确性,本实施例并没有直接判定被检测成员2失效,而是发送协助检测心跳检测包至协助失效检测群组,通过协助失效检测群组中的成员来对被检测成员2进行心跳检测,若在网络包往返最坏情况耗时内收到协助失效检测群组中的成员的心跳响应包时,则设定被检测成员2的存活状态为有效,否则才设定被检测成员2的存活状态为失效,并向领导者汇报。上述协助失效检测群组中的成员从成员1的其他成员列表中随机选取,如成员3、成员5、成员6等。
进一步地,根据误报概率、成员失效概率、检测区域的网络丢包概率确定协助失效检测群组的大小,具体表达式为:
由上所述,每个成员在检测一个目标成员是否失效时,如果没有及时收到心跳响应,将会通过协助失效检测群组的成员再次从不同的通信线路检测目标成员,仍然没有及时收到心跳响应时才会判定目标成员已经失效。从而确保目标成员失效状态判定的准确性。
示例性***
如图6所示,对应于上述大规模广域分布式集群成员失效检测方法,本发明实施例还提供一种大规模广域分布式集群成员失效检测***,上述大规模广域分布式集群成员失效检测***包括:
若干个检测区域,每个检测区域设有一个领导者和若干成员,每个检测区域内为低延时通信网络;
所述领导者用于管理领导者所属检测区域的成员状态,定期与其他检测区域的领导者同步集群成员状态;
所述成员上设有失效检测组件,所述失效检测组件用于周期性地检测其他成员的存活状态,响应其他成员的心跳检测请求以及协助其他成员检测第三方成员的存活状态;
所述成员上还设有成员队列管理组件,所述成员队列管理组件用于监听领导者广播的成员变化消息并更新所述成员上的其他成员列表。
可选的,所述成员上还设有协助失效检测群组,所述协助失效检测群组用于在所述成员检测其他成员的存活状态时,若超时未获得心跳响应包,所述成员发送协助检测心跳检测包至所述协助失效检测群组以协助对所述其他成员进行心跳检测。
具体地,领导者负责管理本检测区域的成员状态,定期与其他领导者同步集群成员状态。当本检测区域有新成员加入、已有成员主动离开时,分别修改对应的成员状态为有效或者失效,并向本检测区域其他成员广播成员新增和离开消息;当接受到本检测区域其他成员报告的被检成员失效消息,标记被检成员的状态为失效,并向本区域其他成员广播该成员已经失效的消息。领导者使用了一个缓冲队列记录所有上述类型的成员状态变化,成员状态同步时,定期向其他检测区域的领导者发送缓冲队列记录的所有成员状态变化消息,清空缓冲队列。
每个检测区域的每一个成员上均设有失效检测组件和成员队列管理组件。失效检测组件定期检测其他成员是否失效,向领导者汇报失效的成员;响应其他成员对自己的失效检测请求,并返回检测结果;帮助其他成员检测第三方成员是否失效,并返回检测结果。以成员为例,其失效检测组件处理检测消息的逻辑步骤:如果检测目标是自己,则直接返回一个确认消息;如果检测目标是另一个成员,则先检测,收到的确认后,再通知检测的发起者,确认正常工作。成员队列管理组件负责监听领导者广播的成员变化消息并做相应处理:将新成员添加到成员队列的随机位置、从成员队列中删除主动离开或者意外失效的成员以维护每个成员对应的其他成员列表。
大规模广域分布式集群成员失效检测***具体工作过程如下:
假定代表本检测区域的所有成员,代表本检测区域的成员总数;代表一个成员,其中,代表本检测区域的领导者;代表成员的其他成员列表。其他成员列表的初始值是在加入本检测区域时,由领导者返回给的。对于本检测区域每一个成员,执行轮转随机化失效检测。
在当前成员上启动一个长时间运行的服务进程,负责处理本检测区域领导者广播的本检测区域成员变化消息。具体地,如图7所示,有新成员加入时,将新成员加入到其他成员列表的随机位置;已有成员由于主动离开、意外失效等原因导致失效时,从成员队列中删除该成员,不再作为失效检测目标。
当前成员收到消息:这表明成员请求当前成员帮忙检测另外一个成员是否失效。服务进程的处理逻辑是向成员发送消息,等待返回的确认消息,最多等待网络包往返最坏情况耗时。如果服务进程在时限内收到的确认消息,则向返回确认消息。
然后检测周期序号,选择其他成员列表的当前成员(变量代表其他成员列表当前元素的索引号,取值范围为,初始值为1)作为检测目标,向它发送检测请求并等待被检测成员返回的确认消息,最多等待。如果在时限内收到的确认消息,则认定工作正常,继续检测下一个成员直到一轮检测结束;如果超时也没收到的确认消息,则进行协助检测处理:首先从中随机选取位成员,分别发送协助检测的请求,等待返回的确认消息,直到一轮检测周期结束都没有收到任何协助检测的成员返回的确认消息,则认定已经失效,向本检测区域的领导者汇报。
具体的,本实施例中,上述大规模广域分布式集群成员失效检测***的具体功能还可以参照上述大规模广域分布式集群成员失效检测方法中的对应描述,在此不再赘述。
基于上述实施例,本发明还提供了一种智能终端,其原理框图可以如图8所示。上述智能终端包括通过***总线连接的处理器、存储器、网络接口以及显示屏。其中,该智能终端的处理器用于提供计算和控制能力。该智能终端的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作***和大规模广域分布式集群成员失效检测程序。该内存储器为非易失性存储介质中的操作***和大规模广域分布式集群成员失效检测程序的运行提供环境。该智能终端的网络接口用于与外部的终端通过网络连接通信。该大规模广域分布式集群成员失效检测程序被处理器执行时实现上述任意一种大规模广域分布式集群成员失效检测方法的步骤。该智能终端的显示屏可以是液晶显示屏或者电子墨水显示屏。
本领域技术人员可以理解,图8中示出的原理框图,仅仅是与本发明方案相关的部分结构的框图,并不构成对本发明方案所应用于其上的智能终端的限定,具体的智能终端可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种智能终端,上述智能终端包括存储器、处理器以及存储在上述存储器上并可在上述处理器上运行的大规模广域分布式集群成员失效检测程序,上述大规模广域分布式集群成员失效检测程序被上述处理器执行时进行以下操作指令:
检测分布式集群各成员之间的网络通信延迟,根据网络通信延迟将分布式集群划分为若干个检测区域;
基于设定规则,在每个检测区域选定一个成员作为领导者,所述领导者用于记录该领导者所属检测区域的所有成员的存活状态;
每个检测区域的每一个成员周期性地检测该成员所属检测区域的其他成员的存活状态,并将检测结果传输至该成员所属检测区域的领导者;
所有检测区域的领导者定期同步集群成员的存活状态,获得集群成员的失效检测结果。
可选的,所述每个检测区域的每一个成员周期性检测该成员所属检测区域的其他成员的存活状态,包括:
获取所述成员对应的其他成员列表;
对所述其他成员列表中的每个成员依次进行心跳检测;
当对所述其他成员列表中所有成员均完成心跳检测时,对所述其他成员列表进行随机重排序;
对更新后的其他成员列表进行下一周期的心跳检测。
可选的,所述对所述其他成员列表中的每个成员依次进行心跳检测,包括:
当在网络包往返最坏情况耗时内收到所述其他成员列表中被检测成员的心跳响应包时,则设定所述被检测成员的存活状态为有效;
当检测周期结束仍未收到所述被检测成员的心跳响应包时,则发送协助检测心跳检测包至协助失效检测群组以对所述被检测成员进行心跳检测,所述协助失效检测群组由所述其他成员列表中的成员组成;
当在网络包往返最坏情况耗时内还未收到所述协助失效检测群组的心跳响应包时,设定所述被检测成员的存活状态为失效;否则,设定所述被检测成员的存活状态为有效。
可选的,根据误报概率、成员失效概率、所属检测区域的网络丢包概率确定协助失效检测群组的大小,具体表达式为:
可选的,所述所有检测区域的领导者定期同步集群成员的存活状态,包括:
从所有的领导者中随机选取预设数量的领导者;
基于谣传路由协议,在已选取的领导者之间同步集群成员的存活状态。
本发明实施例还提供一种计算机可读存储介质,上述计算机可读存储介质上存储有大规模广域分布式集群成员失效检测程序,上述大规模广域分布式集群成员失效检测程序被处理器执行时实现本发明实施例提供的任意一种大规模广域分布式集群成员失效检测方法的步骤。
应理解,上述实施例中各步骤的序号大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将上述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。上述***中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各实例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟是以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
在本发明所提供的实施例中,应该理解到,所揭露的装置/终端设备和方法,可以通过其它的方式实现。例如,以上所描述的装置/终端设备实施例仅仅是示意性的,例如,上述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以由另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。
上述集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,上述计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,上述计算机程序包括计算机程序代码,上述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。上述计算机可读介质可以包括:能够携带上述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,RandomAccess Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,上述计算机可读存储介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减。
以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解;其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不是相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。
Claims (10)
1.大规模广域分布式集群成员失效检测方法,其特征在于,包括:
检测分布式集群各成员之间的网络通信延迟,根据网络通信延迟将分布式集群划分为若干个检测区域;
基于设定规则,在每个检测区域选定一个成员作为领导者,所述领导者用于记录该领导者所属检测区域的所有成员的存活状态;
每个检测区域的每一个成员周期性地检测该成员所属检测区域的其他成员的存活状态,并将检测结果传输至该成员所属检测区域的领导者;
所有检测区域的领导者定期同步集群成员的存活状态,获得集群成员的失效检测结果。
2.如权利要求1所述的大规模广域分布式集群成员失效检测方法,其特征在于,所述每个检测区域的每一个成员周期性检测该成员所属检测区域的其他成员的存活状态,包括:
获取所述成员对应的其他成员列表;
对所述其他成员列表中的每个成员依次进行心跳检测;
当对所述其他成员列表中所有成员均完成心跳检测时,对所述其他成员列表进行随机重排序;
对更新后的其他成员列表进行下一周期的心跳检测。
3.如权利要求2所述的大规模广域分布式集群成员失效检测方法,其特征在于,所述对所述其他成员列表中的每个成员依次进行心跳检测,包括:
当在网络包往返最坏情况耗时内收到所述其他成员列表中被检测成员的心跳响应包时,则设定所述被检测成员的存活状态为有效;
当检测周期结束仍未收到所述被检测成员的心跳响应包时,则发送协助检测心跳检测包至协助失效检测群组以对所述被检测成员进行心跳检测,所述协助失效检测群组由所述其他成员列表中的成员组成;
当在网络包往返最坏情况耗时内还未收到所述协助失效检测群组的心跳响应包时,设定所述被检测成员的存活状态为失效;否则,设定所述被检测成员的存活状态为有效。
6.如权利要求1所述的大规模广域分布式集群成员失效检测方法,其特征在于,所述所有检测区域的领导者定期同步集群成员的存活状态,包括:
从所有的领导者中随机选取预设数量的领导者;
基于谣传路由协议,在已选取的领导者之间同步集群成员的存活状态。
7.大规模广域分布式集群成员失效检测***,其特征在于,所述***包括:
若干个检测区域,每个检测区域设有一个领导者和若干成员,每个检测区域内为低延时通信网络;
所述领导者用于管理领导者所属检测区域的成员状态,定期与其他检测区域的领导者同步集群成员状态;
所述成员上设有失效检测组件,所述失效检测组件用于周期性地检测其他成员的存活状态,响应其他成员的心跳检测请求以及协助其他成员检测第三方成员的存活状态;
所述成员上还设有成员队列管理组件,所述成员队列管理组件用于监听领导者广播的成员变化消息并更新所述成员上的其他成员列表。
8.如权利要求7所述的大规模广域分布式集群成员失效检测***,其特征在于,所述成员上还设有协助失效检测群组,所述协助失效检测群组用于在所述成员检测其他成员的存活状态时,若超时未获得心跳响应包,所述成员发送协助检测心跳检测包至所述协助失效检测群组以协助对所述其他成员进行心跳检测。
9.智能终端,其特征在于,所述智能终端包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的大规模广域分布式集群成员失效检测程序,所述大规模广域分布式集群成员失效检测程序被所述处理器执行时实现如权利要求1-6任意一项所述大规模广域分布式集群成员失效检测方法的步骤。
10.计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有大规模广域分布式集群成员失效检测程序,所述大规模广域分布式集群成员失效检测程序被处理器执行时实现如权利要求1-6任意一项所述大规模广域分布式集群成员失效检测方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310079050.2A CN115801626B (zh) | 2023-02-08 | 2023-02-08 | 大规模广域分布式集群成员失效检测方法及*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310079050.2A CN115801626B (zh) | 2023-02-08 | 2023-02-08 | 大规模广域分布式集群成员失效检测方法及*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115801626A true CN115801626A (zh) | 2023-03-14 |
CN115801626B CN115801626B (zh) | 2023-05-09 |
Family
ID=85430422
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310079050.2A Active CN115801626B (zh) | 2023-02-08 | 2023-02-08 | 大规模广域分布式集群成员失效检测方法及*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115801626B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060268742A1 (en) * | 2005-05-31 | 2006-11-30 | Lingkun Chu | Topology-centric resource management for large scale service clusters |
CN102769673A (zh) * | 2012-07-25 | 2012-11-07 | 楚云汉智武汉网络存储***有限公司 | 一种适应于大规模存储集群的失效检测方法 |
CN110445682A (zh) * | 2019-08-05 | 2019-11-12 | 深圳市大拿科技有限公司 | 监测联网节点存活状态的方法、服务器、设备及*** |
CN112445809A (zh) * | 2020-11-25 | 2021-03-05 | 浪潮云信息技术股份公司 | 一种分布式数据库节点存活状态检测模块及方法 |
-
2023
- 2023-02-08 CN CN202310079050.2A patent/CN115801626B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060268742A1 (en) * | 2005-05-31 | 2006-11-30 | Lingkun Chu | Topology-centric resource management for large scale service clusters |
CN102769673A (zh) * | 2012-07-25 | 2012-11-07 | 楚云汉智武汉网络存储***有限公司 | 一种适应于大规模存储集群的失效检测方法 |
CN110445682A (zh) * | 2019-08-05 | 2019-11-12 | 深圳市大拿科技有限公司 | 监测联网节点存活状态的方法、服务器、设备及*** |
CN112445809A (zh) * | 2020-11-25 | 2021-03-05 | 浪潮云信息技术股份公司 | 一种分布式数据库节点存活状态检测模块及方法 |
Non-Patent Citations (2)
Title |
---|
曹渠江;武彦林;: "分布式***中失效检测方法的研究与分析" * |
梁毅;邸瑞华;王磊;詹剑锋;: "面向机群检查点的组管理协议" * |
Also Published As
Publication number | Publication date |
---|---|
CN115801626B (zh) | 2023-05-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108616566B (zh) | raft分布式***选主方法、相关设备及*** | |
CN107295080B (zh) | 应用于分布式服务器集群的数据存储方法和服务器 | |
CN113014634B (zh) | 集群选举处理方法、装置、设备及存储介质 | |
US8756343B2 (en) | Data management method and node apparatus | |
CN107453929B (zh) | 集群***自构建方法、装置及集群*** | |
CN109218349A (zh) | 一种管理服务器集群的方法及装置 | |
CN109213792A (zh) | 数据处理的方法、服务端、客户端、装置及可读存储介质 | |
WO2021223464A1 (zh) | 一种分布式仿真的时间一致性同步方法 | |
CN112333249A (zh) | 一种业务服务***及方法 | |
CN113760468A (zh) | 分布式选举方法、装置、***和介质 | |
CN114265753A (zh) | 消息队列的管理方法、管理***和电子设备 | |
CN110324262A (zh) | 一种资源抢占的方法及装置 | |
CN109560903A (zh) | 一种完全容灾的车载指挥通信*** | |
JP2010092395A (ja) | サーバ管理システム,サーバ管理方法及びサーバ管理用プログラム | |
CN105892957B (zh) | 一种基于动态分片的分布式事务执行方法 | |
CN111835809B (zh) | 工单消息分配方法、装置、服务器及存储介质 | |
CN115801626A (zh) | 大规模广域分布式集群成员失效检测方法及*** | |
CN114598593B (zh) | 消息处理方法、***、计算设备及计算机存储介质 | |
CN110752972A (zh) | 一种网卡状态监控方法、装置、设备及介质 | |
CN112256461B (zh) | 一种基于多云环境的分布式消息***及管理方法 | |
TWI767427B (zh) | 監控伺服器及其設備資源監控方法 | |
JP2004260244A (ja) | 情報通信方法、プログラム及びシステム | |
CN112541038A (zh) | 时序数据管理方法、***、计算设备及存储介质 | |
CN108683533B (zh) | 配置更新方法、配置更新的响应方法及服务器、*** | |
Lu et al. | A fault tolerant election-based deadlock detection algorithm in distributed systems |
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 |