CN110324166B - 一种在多个节点中同步目标信息的方法、装置及系统 - Google Patents
一种在多个节点中同步目标信息的方法、装置及系统 Download PDFInfo
- Publication number
- CN110324166B CN110324166B CN201810278773.4A CN201810278773A CN110324166B CN 110324166 B CN110324166 B CN 110324166B CN 201810278773 A CN201810278773 A CN 201810278773A CN 110324166 B CN110324166 B CN 110324166B
- Authority
- CN
- China
- Prior art keywords
- node
- nodes
- target information
- information
- order
- 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
- 238000000034 method Methods 0.000 title claims abstract description 49
- 230000001360 synchronised effect Effects 0.000 claims abstract description 43
- 238000011144 upstream manufacturing Methods 0.000 claims abstract description 39
- 230000005540 biological transmission Effects 0.000 claims abstract description 29
- 238000012544 monitoring process Methods 0.000 claims description 36
- 238000004891 communication Methods 0.000 claims description 19
- 238000004422 calculation algorithm Methods 0.000 claims description 10
- 238000003860 storage Methods 0.000 claims description 7
- 238000013461 design Methods 0.000 description 24
- 238000010586 diagram Methods 0.000 description 15
- 238000001514 detection method Methods 0.000 description 13
- 230000006870 function Effects 0.000 description 8
- 238000004590 computer program Methods 0.000 description 7
- 238000012545 processing Methods 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 6
- 230000000644 propagated effect Effects 0.000 description 5
- 238000012163 sequencing technique Methods 0.000 description 5
- 230000007246 mechanism Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 241000720945 Hosta Species 0.000 description 2
- 230000008878 coupling Effects 0.000 description 2
- 238000010168 coupling process Methods 0.000 description 2
- 238000005859 coupling reaction Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 230000001902 propagating effect Effects 0.000 description 2
- 238000011084 recovery Methods 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 238000004904 shortening Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/42—Loop networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/06—Management of faults, events, alarms or notifications
-
- 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/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/42—Loop networks
- H04L12/437—Ring fault isolation or reconfiguration
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Small-Scale Networks (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请公开了一种在多个节点中同步目标信息的方法、装置及系统,用以解决节点获知故障信息的时间不可控时间较长的问题。多个节点中第一节点得到目标信息;第一节点在第一节点保存的第一配置信息中根据同步传输策略,确定第一节点的至少一个下一跳节点,第一配置信息表示多个节点的次序,多个节点的次序对应环形拓扑结构,在多个节点的次序中,多个节点中的每个节点都有一个与之相邻的上游节点和下游节点,同步传输策略为每个节点,都按照每个节点的上游节点对应的方向或者都按照每个节点的下游节点对应的方向,从与每个节点距离较近的一组节点中得到目标信息的至少一个下一跳节点;第一节点向目标信息对应的至少一个下一跳节点发送目标信息。
Description
技术领域
本申请涉及通信技术领域,尤其涉及一种在多个节点中同步目标信息的方法、装置及系统。
背景技术
随着分布式计算和云计算技术在信息领域的发展,传统的通信技术(communications technology,CT)逐渐向信息通信技术(information CommunicationsTechnology,ICT)转型和发展。ICT是信息技术与通信技术相融合而形成的一个新的概念和新的技术领域。CT向ICT的转型和发展过程中,不可避免地会遇到很多复杂且困难的问题需要解决。比如业务云化过程中,由软件方法进行故障检测,具体主要通过心跳机制检测来处理故障。随着业务和集群规模增大,现在一般采用去中心化心跳检测机制进行故障处理。
去中心化心跳检测机制中采用周期性随机进行全局故障信息的同步,具体通过gossip算法实现同步故障信息。每个节点从集群中随机选择1个节点将本节点中所有信息(包括接收到某个节点发来的故障信息或者监控到的其它节点故障的故障信息)传播给其他节点,经过n个周期后,集群所有节点均能获知该故障信息。
由于每个节点是随机选择一个或者多个节点去通知本节点中的信息,另外需要在达到周期的时间点时才去通知其它节点该本节点中的所有信息,因此在集群中节点获知的故障信息的时间不可控以及时间较长。
发明内容
本申请提供一种在多个节点中同步目标信息的方法、装置及系统,用以解决节点获知故障信息的时间不可控,时间较长的问题。
第一方面,本申请实施例提供了一种在多个节点中同步目标信息的方法,所述多个节点中包括第一节点,包括:所述第一节点得到所述目标信息;所述第一节点在所述第一节点保存的第一配置信息中根据同步传输策略,确定所述第一节点的至少一个下一跳节点,所述第一配置信息表示所述多个节点的次序,所述多个节点的次序对应环形拓扑结构,在所述多个节点的次序中,所述多个节点中的每个节点都有一个与之相邻的上游节点和下游节点,所述同步传输策略为所述多个节点中的每个节点,都按照所述每个节点的上游节点对应的方向或者都按照所述每个节点的下游节点对应的方向,从与所述每个节点距离较近的一组节点中得到所述目标信息对应的至少一个下一跳节点;所述第一节点向所述目标信息对应的所述至少一个下一跳节点发送所述目标信息。
该方法可以应用于集群,所述集群中的每个节点中均存储有第一配置信息,所述第一配置信息用于表征集群中多个节点排列先后顺序,且每个节点均有前后两个相邻的节点,即相邻的上游节点和相邻的下游节点,从而每个节点均在第一配置信息中,根据同步传输策略,在同一个方向上选择至少一个下一跳节点来同步目标信息,从而使得集群中所有的节点获知到目标信息的时间可控,并且在一定程度缩短了现有随机选择节点传播目标信息的时长。
在一种可能的设计中,所述多个节点的次序为所述多个节点中每个节点的节点标识按照从大到小或者从小到排列后的顺序,且最小值对应的节点的其中一个相邻节点为最大值对应的节点;或者,
所述多个节点的次序为所述多个节点中每个节点对应的哈希值按照从大到小或者从小到大排列后的顺序,且哈希值最小的节点的其中一个相邻节点为哈希值最大的节点,所述节点对应的哈希值为基于哈希算法针对该节点的节点标识计算得到的。
上述设计,提供了两种有效的排序的方式。
在一种可能的设计中,所述第一节点在所述第一节点保存的第一配置信息中根据同步传输策略,确定所述第一节点的至少一个下一跳节点,可以通过如下方式实现:
所述第一节点按照所述多个节点的次序,选择在所述第一节点的上游节点对应的方向上,与所述第一节点相邻的至少一个下一跳节点;或者,
所述第一节点按照所述多个节点的次序,选择在所述第一节点的下游节点对应的方向上,与所述第一节点相邻的至少一个下一跳节点。
上述设计,提供了一种有效的选择N个节点的方式。
在一种可能的设计中,所述方法还包括:所述第一节点在所述第一节点保存的第一配置信息中根据同步传输策略,确定所述第一节点的至少一个下一跳节点,包括:
所述第一节点按照所述多个节点的次序,选择在所述第一节点的上游节点对应的方向上,第i+1+(i-1)*(N-1)个节点至所述[i+N+(i-1)*(N-1)]个节点;或者,
所述第一节点按照所述多个节点的次序,选择在所述第一节点的下游节点对应的方向上,第i+1+(i-1)*(N-1)个节点至所述[i+N+(i-1)*(N-1)]个节点;
所述第一节点为所述多个节点的次序中,用于同步所述目标信息的第i个节点,N为所述第一节点确定的下一跳节点的数量。
即,第一节点确定的N个节点为第i+j+(i-1)*(N-1)个节点,j=[1,N],且满足所述[i+j+(i-1)*(N-1)]<=X,X为所述第一配置信息中所表示的节点的数量。
通过上述设计,每个节点均向紧接着上一个节点发送的N个节点的最后一个节点开始排列的N个节点发送目标信息,从而使得每个节点对应发送目标信息的N个节点均不重复。
其中,i+1+(i-1)*(N-1)-[i+N+(i-1)*(N-1)]均小于集群中节点的数量。
在所述N个下一跳节点中包括首个同步所述目标信息的第1个节点(或者末尾节点,)时,所述第一节点分别向所述N个节点中,位于所述第i节点之后,且位于所述末尾节点之前的节点发送所述同步信息。
末尾节点是同步方向的反方向上与所述第1个节点相邻的节点。同步方向为每个节点所按照的所述每个节点的上游节点对应的方向或者所述每个节点的下游节点对应的方向。
上述设计中,在确定N个节点中包括所述第1个节点(或者末尾节点),则确定本次发送目标信息后,所有的节点均已收到该目标信息,因此该节点仅需要向该节点之后,末尾节点之前的节点发送该目标信息即可。
在一种可能的设计中,所述目标信息为故障节点对应的故障信息;所述第一节点为首个同步所述目标信息的节点;所述第一节点得到目标信息,包括:
所述第一节点基于所述第一节点中的第二配置信息监控所述第一节点的上游节点对应的方向或者所述第一节点的下游节点对应的方向上,与所述第一节点相邻的至少一个节点是否发生故障;所述第二配置信息表示所述多个节点的次序,所述多个节点的次序对应环形拓扑结构,在所述多个节点的次序中,所述多个节点中的每个节点都有一个与之相邻的上游节点和下游节点;所述第i节点在确定所述至少一个节点其中一节点发生故障时,生成发生故障的节点对应的故障信息。
上述设计,提供了一种在故障检测中,每个节点监控其它节点是否发生故障的方式,每个节点通过所述第二配置信息监控排在自身之后的至少一个节点。
在一种可能的设计中,所述第一配置信息为在所述第二配置信息中删除所述故障节点后形成的。其中,第一配置信息还可以与第二配置信息相同,在基于第一配置信息同步目标信息时,将故障节点排除在外。
在一种可能的设计中,所述多个节点被划分为至少两个亲和性组,在同一亲和性组中的各个节点间存在关联关系;第一亲和性组包括的任意两个节点在所述第一配置信息中不相邻,所述第一亲和性组为所述至少两个亲和性组中除节点数量最多的亲和性组以外的任一亲和性组,k为大于或者等于2的整数。
在现有集群中,每个节点会被b个节点监控,b个节点向监控的节点发送心跳报文,若b个节点中w个节点发现预设时长内未收到该节点发送的心跳报文的反馈报文,则判断该节点故障。其中1<=w<=b。但是该种方式未考虑到亲和性关系,若具有亲和性关系的节点互相监控,当这些节点同时故障时,则无法及时的发现故障。通过上述设计,根据针对集群分成的k个亲和性组来生成第二配置信息,且尽量保证具有亲和性关系的节点在第二配置信息中不相邻,从而在一定程度上避免了具有亲和性关系的节点互相监控的情况,进而提高了故障检测的可靠性。
在一种可能的设计中,所述第i节点确定待传播的目标信息,包括:在i不等于1时,所述第i节点首次接收到所述目标信息,或者,在i等于1时,所述第i节点生成所述目标信息。
通过上述设计,每个节点在重复接收到目标信息时,不再重复传播。
第二方面,本申请实施例还提供了一种在多个节点中同步目标信息的装置,所述装置应用于所述多个节点中包括的第一节点,包括:
获得单元,用于得到所述目标信息;
确定单元,用于在所述第一节点保存的第一配置信息中根据同步传输策略,确定所述第一节点的至少一个下一跳节点,所述第一配置信息表示所述多个节点的次序,所述多个节点的次序对应环形拓扑结构,在所述多个节点的次序中,所述多个节点中的每个节点都有一个与之相邻的上游节点和下游节点,所述同步传输策略为所述多个节点中的每个节点,都按照所述每个节点的上游节点对应的方向或者都按照所述每个节点的下游节点对应的方向,从与所述每个节点距离较近的一组节点中得到所述目标信息对应的至少一个下一跳节点;
发送单元,用于向所述目标信息对应的所述至少一个下一跳节点发送所述目标信息。
在一种可能的设计中,所述多个节点的次序为所述多个节点中每个节点的节点标识按照从大到小或者从小到排列后的顺序,且最小值对应的节点的其中一个相邻节点为最大值对应的节点;或者,
所述多个节点的次序为所述多个节点中每个节点对应的哈希值按照从大到小或者从小到大排列后的顺序,且哈希值最小的节点的其中一个相邻节点为哈希值最大的节点,所述节点对应的哈希值为基于哈希算法针对该节点的节点标识计算得到的。
在一种可能的设计中,所述确定单元,具体用于:
按照所述多个节点的次序,选择在所述第一节点的上游节点对应的方向上,与所述第一节点相邻的至少一个下一跳节点;或者,
按照所述多个节点的次序,选择在所述第一节点的下游节点对应的方向上,与所述第一节点相邻的至少一个下一跳节点。
在一种可能的设计中,所述确定单元,具体用于:
按照所述多个节点的次序,选择在所述第一节点的上游节点对应的方向上,第i+1+(i-1)*(N-1)个节点至所述[i+N+(i-1)*(N-1)]个节点;或者,
按照所述多个节点的次序,选择在所述第一节点的下游节点对应的方向上,第i+1+(i-1)*(N-1)个节点至所述[i+N+(i-1)*(N-1)]个节点;
所述第一节点为所述多个节点的次序中,用于同步所述目标信息的第i个节点,N为所述第一节点确定的下一跳节点的数量。
在一种可能的设计中,所述目标信息为故障节点对应的故障信息,所述第一节点为同步所述目标信息的首个节点;
所述获得单元,具体用于:基于所述第一节点中的第二配置信息监控所述第一节点的上游节点对应的方向或者所述第一节点的下游节点对应的方向上,与所述第一节点相邻的至少一个节点是否发生故障;所述第二配置信息表示所述多个节点的次序,所述多个节点的次序对应环形拓扑结构,在所述多个节点的次序中,所述多个节点中的每个节点都有一个与之相邻的上游节点和下游节点;在确定所述至少一个节点其中一节点发生故障时,生成发生故障的节点对应的故障信息。
在一种可能的设计中,所述多个节点被划分为至少两个亲和性组,在同一亲和性组中的各个节点间存在关联关系;第一亲和性组包括的任意两个节点在所述第一配置信息中不相邻,所述第一亲和性组为所述至少两个亲和性组中除节点数量最多的亲和性组以外的任一亲和性组。
第三方面,本申请实施例提供了一种在多个节点中同步目标信息的装置,所述装置应用于所述多个节点中包括的第一节点,具体该装置可以是节点,也可以是节点中的芯片。包括:通信接口、处理器和存储器;
所述存储器用于存储软件程序,所述处理器用于读取所述存储器中存储的软件程序,通过所述通信接口收发数据,并实现第一方面,或者第一方面的任一种可能的设计所述的方法。
第四方面,本申请实施例还提供了一种系统,所述系统中包括多个节点;
所述多个节点中每个节点均保存第一配置信息且配置有同步传输策略;
其中,所述第一配置信息表示所述多个节点的次序,所述多个节点的次序对应环形拓扑结构,在所述多个节点的次序中,所述多个节点中的每个节点都有一个与之相邻的上游节点和下游节点;所述同步传输策略为所述多个节点中的每个节点,都按照同步方向从与所述每个节点距离较近的一组节点中得到所述目标信息对应的至少一个下一跳节点,所述同步方向为所述每个节点的上游节点对应的方向或者述每个节点的下游节点对应的方向;
所述多个节点中的第一节点生成目标信息,在所述第一配置信息中根据同步传输策略,确定所述第一节点的至少一个下一跳节点,并向所述第一节点的至少一个下一跳节点发送所述目标信息;所述第一节点为同步所述目标信息的首个节点;
第二节点接收到上一跳节点发送的目标信息后,在所述第一配置信息中根据同步传输策略,确定所述第二节点的至少一个下一跳节点,并向所述第二节点的至少一个下一跳节点发送所述目标信息;所述第二节点为在所述同步方向上第一节点至第三节点之间的任一节点;
第三节点接收到上一跳节点发来的所述同步信息后,停止发送所述同步信息;
其中,所述第三节点为所述同步方向的逆方向上与所述第一节点相邻的节点。
在一种可能的设计中,所述第一节点在所述第一节点保存的第一配置信息中根据同步传输策略,确定所述第一节点的至少一个下一跳节点,包括:
所述第一节点按照所述多个节点的次序,选择在所述第一节点的上游节点对应的方向上,与所述第一节点相邻的至少一个下一跳节点;或者,
所述第一节点按照所述多个节点的次序,选择在所述第一节点的下游节点对应的方向上,与所述第一节点相邻的至少一个下一跳节点。
在一种可能的设计中,所述第一节点在所述第一节点保存的第一配置信息中根据同步传输策略,确定所述第一节点的至少一个下一跳节点,包括:
所述第一节点按照所述多个节点的次序,选择在所述第一节点的上游节点对应的方向上,第i+1+(i-1)*(N-1)个节点至所述[i+N+(i-1)*(N-1)]个节点;或者,
所述第一节点按照所述多个节点的次序,选择在所述第一节点的下游节点对应的方向上,第i+1+(i-1)*(N-1)个节点至所述[i+N+(i-1)*(N-1)]个节点;
所述第一节点为所述多个节点的次序中,用于同步所述目标信息的第i个节点,N为所述第一节点确定的下一跳节点的数量。
其中,i+1+(i-1)*(N-1)至[i+N+(i-1)*(N-1)]均小于所述第一配置信息表示的次序中的节点数量。
所述第二节点根据同步传输策略确定的N个下一跳节点中,若包括第一节点或者包括所述第三节点,所述第二节点确定发送同步信息的下一跳节点包括所述同步方向上,从所述第二节点的相邻的节点开始到所述第三节点。
第五方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质中存储软件程序,所述软件程序在被一个或多个处理器读取并执行时可实现第一方面,或者第一方面的任一种可能的设计所述的方法。
另外,第二方面至第五方面中任一种设计方式所带来的技术效果可参见第一方面中不同实现方式所带来的技术效果,此处不再赘述。
附图说明
图1为本申请实施例提供的监控环示意图;
图2为本申请实施例提供的同步目标信息的方法流程示意图;
图3为本申请实施例提供的一种基于构建的同步环选择节点的示意图;
图4为本申请实施例提供的另一种基于构建的同步环选择节点的示意图;
图5为本申请实施例提供的故障检测方式流程示意图;
图6为本申请实施例提供的一种基于构建的监控环选择监控节点的示意图;
图7A为本申请实施例提供的故障节点示意图;
图7B为本申请实施例提供的又一种基于构建的同步环选择节点的示意图;
图8为本申请实施例提供的装置800结构示意图;
图9为本申请实施例提供的节点900结构示意图。
具体实施方式
本申请实施例应用于集群通信系统中,具体适用于集群通信系统中节点间信息的同步。集群通信系统中包括多个节点,节点例如可以是计算机(比如物理机),或者是计算机中部署的虚拟机等。本申请实施例中,将集群中的各个节点均赋予相同的功能,即所有节点均具有接收目标信息和发送目标信息的功能。
以下,对本申请中的部分用语进行解释说明,以便于本领域技术人员理解。
1)、多个指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,需要理解的是,在本申请的描述中,“第一”、“第二”等词汇,仅用于区分描述的目的,而不能理解为指示或暗示相对重要性,也不能理解为指示或暗示顺序。
2)、亲和性组是指集群中存在关联关系(亲和性关系)的节点的集合。比如,属于同一基站内的网元之间存在亲和性关系,或者属于同一个主机的各个虚拟节点之前存在关联关系,或者用户配置的存在关联关系的节点等。
3)、本申请实施例中涉及到的目标信息可以是需要在集群所有节点间全局同步的目标信息。比如某个节点故障对应的故障信息、或者心跳状态信息或者节点资源信息等。
4)、本申请实施例中集群中的各个节点均具有生成第一配置信息和第二配置信息的功能。
在目标信息不为某个节点的故障信息时,第一配置信息与第二配置信息用于表征同一信息。在目标信息为某个节点的故障信息时,在第二配置信息中删除故障节点的节点标识后构成第一配置信息。下面以第二配置信息为例进行说明,以集群中包括X个节点为例。
第二配置信息表示所述X个节点的次序,所述X个节点的次序对应环形拓扑结构,在所述多个节点的次序中,所述多个节点中的每个节点都有一个与之相邻的上游节点和下游节点。一个节点的上游节点和下游节点,即为在环形拓扑结构中与该节点相邻的两个节点。
所述X个节点的次序,也可以理解为表示集群中的X个节点对应的节点标识的排列先后顺序,也可以理解为,X个节点对应的节点标识排队后围成一个环形拓扑结构,为了后续描述方便,将该环形拓扑结构称为监控环。可以将第一配置信息对应的环形拓扑结构称为同步环。
监控环(第二配置信息)仅针对故障检测的场景下,且在目标信息为故障节点的故障信息时,在监控环中删除所述故障节点后构成所述同步环。
各个节点在生成第一配置信息或者第二配置信息时,采用的规则相同,即在构建同步环或者监控环时,采用的规则相同。每个节点按照相同的构建规则生成同步环对应的第一配置信息或者监控环对应第二配置信息。
其中,监控环与同步环的构建方式相同,下面以监控环为例进行说明。
第一种构建监控环的可能方式是:将集群中各个节点的节点标识按照从大到小或者从小到大的顺序排列后,并将最大的节点标识与最小的节点标识首尾相接从而形成监控环。最大的节点标识与最小的节点标识首尾相接后,使得最小的节点标识的其中一个相邻节点标识为最大的节点标识。
节点标识用于唯一标识节点,节点标识可以是节点的ID或者节点的媒体访问控制(media access contro,MAC)地址等等,通过数字唯一标识节点,节点标识可以是节点名称等,通过字符串唯一标识节点。
需要说明的是,字符串比较大小时,可以从两个字符串的最左字符开始一个一个比,比两个字符的ASCII值。一旦某字符比出大小,就停止,否则比到最后一个。比如:“box”和“boss”比到x>s,因此box大于boss。
第二种构建监控环的可能方式是:将集群中各个节点的节点标识对应的哈希值按照从大到小或者从小到大的顺序排列后,并将最大的节点标识对应的节点与最小的节点标识对应的节点首尾相接从而形成监控环。所述各个节点对应的哈希值为基于哈希算法针对各个节点的标识计算得到的。将最大的节点标识对应的节点与最小的节点标识对应的节点首尾相接后,最大的节点标识对应的节点的其中一个相邻节点为最大的节点标识对应的节点。
第三种构建监控环的可能方式是:根据节点间的亲和性关系将集群中包括的各个节点划分为k个亲和性组。根据k个亲和性组构建监控环。第一亲和性组包括的任意两个节点在构建的所述监控环上不相邻,或者说第一亲和性组包括的任意两个节点在所述第二配置信息中不相邻,所述第一亲和性组为所述k个亲和性组中除节点数量最多的亲和性组以外的任一亲和性组,k为大于或者等于2的整数。
第三种构建监控环的可能方式具体可以通过如下方式实现:
步骤1:对节点按照节点的亲和性特征进行分组,具有亲和关系的节点被分到1个组中,比如分为k个组。分别对每个亲和性组包括的节点标识进行排序。排序规则可以是按照每个节点的节点标识或节点标识对应的哈希值从大到小或从小到大的顺序对各个节点进行排序。
步骤2:针对各个亲和性组进行排序,排序规则可以为按照每个组的标识或标识对应的哈希值从大到小或从小到大的顺序对各个亲和性组进行排序。
步骤3:根据步骤1和步骤2排序后的关系,循环依次从每个亲和性组选择一个节点放置到环上,最终构建成一个监控环,或者说循环依次从每个亲和性组选择一个节点配置到排队的队列中,最终生成第二配置信息。
比如,集群中包括三个主机,分别hostA、hostB、hostC。每个主机中部署有9个虚拟机,一个虚拟机对应为一个节点。根据亲和性关系分组为三个亲和性组,一个主机下的节点的集合为一个亲和性组。比如排序后的亲和性组如表1所示,其中x表示每个亲和性组中各个节点的排序位置,y表示3个亲和性组对应的排序位置,A1~A9、B1~B9以及C1~C9分别表示各个节点。
表1
基于上述表1对应的分组、以及排序结果,循环依次从每个亲和性组选择一个节点放置到环上,最终构建成一个监控环,如图1所示:
A1->B1->C1->A2->B2->C2->A3->B3->C3->A4->B4->C4->A5->B5->C5->A6->B6->C6->A7->B7->C7->A8->B8->C8->A9->B9->C9->A1。
表1中每个亲和性组包括节点的数量相同,当然亲和性组包括的节点的数量也可以不相同,比如hostA中不包括A9、而hostB中不包括B8和B9。这样保证除节点数量最多的亲和性组以外的其它亲和性组包括的任意两个节点在监控环中不相邻。按照上述步骤一~步骤三构建的监控环为:
A1->B1->C1->A2->B2->C2->A3->B3->C3->A4->B4->C4->A5->B5->C5->A6->B6->C6->A7->B7->C7->A8->C8->C9->A1。
5G云化场景下,故障检测+故障恢复如果超过5s,业务会中断,若在5s内未恢复,会造成最大损失。由于现有在同步故障信息时,每个节点是随机选择一个节点去通知本节点中的信息,另外需要在达到周期的时间点时才去通知其它节点该本节点中的收到的故障信息,因此在集群中所有节点获知的故障信息的时间不可控以及时间较长。
基于此,本申请实施例提供了一种在多个节点中同步目标信息的方法、装置及系统,用以解决现有信息同步时间不可控且时间较长的问题。其中,方法和装置是基于同一发明构思的,由于方法及装置解决问题的原理相似,因此装置与方法的实施可以相互参见,重复之处不再赘述。
参见图2所示,为本申请实施例提供了的一种多个节点中同步目标信息的方法流程示意图。以集群中包括X个节点为例。所述集群中的X个节点中均存储有第一配置信息。每个节点在接收到其它节点发送的目标信息时,或者生成待传播的目标信息时,通过如下方法进行目标信息的同步。下面以第i节点为例,以首个传播所述目标信息的节点为第1个节点,第i节点为第一配置信息表征的次序中的第i个节点。
S201,所述第i节点得到所述目标信息。
可选地,所述目标信息中包括用于表征首个传播所述目标信息的节点的信息,比如该节点的节点标识。i取遍小于X的正整数。
其中,在i不等于1时,所述第i节点首次接收到所述目标信息,则得到所述目标信息,若第i个节点接收到目标信息后,再次接收到该目标信息时,不再传播该目标信息。在i等于1时,所述第i节点生成所述目标信息。
S202,所述第i节点在所述第i节点保存的第一配置信息中根据同步传输策略,确定所述第i节点的至少一个下一跳节点。后续为了描述方便,将至少一个定义为N个,N为正整数。
所述同步传输策略为所述多个节点中的每个节点,都按照所述每个节点的上游节点对应的方向或者都按照所述每个节点的下游节点对应的方向,从与所述每个节点距离较近的一组节点中得到所述目标信息对应的至少一个下一跳节点。
一个节点的下一跳节点,即一个节点直接发送同步信息的节点,同理,一个节点的上一跳节点,即为直接发送同步信息给该节点的节点。
每个节点的上游节点对应的方向可以是同步环的顺时针方向,也可以是同步环逆时针方向。
其中,与一个节点距离较近的一组节点,基于同步环来说,可以是该节点的顺时针方向上与该节点相邻的连续的几个节点,或者逆时针方向上与该节点相邻的连续的几个节点,或者与将节点分组后,距离该节点最近的一组节点等等。
S203,所述第i节点向所述目标信息对应的所述至少一个下一跳节点发送所述目标信息。
第i节点确定N个节点,具体可以通过如下选择方式实现:
第一种选择方式是:在第一配置信息中,选择连续的N个节点,且连续的所述N个节点中其中一个节点与所述第i节点相邻。即,所述N个节点在所述同步环的顺时针方向上或者逆时针方向上连续、且N个节点中的一个节点与所述第i节点相邻。
第二种选择方式是:将第一配置信息中,除去第1节点~第i-1节点选择的节点标识后,在所述同步环的顺时针方向上或者逆时针方向上,按照顺序选择连续的N个节点。即,在未接收到所述目标消息的节点中,在所述同步环的顺时针方向上或者逆时针方向上选择连续的N个节点标识。
下面通过具体示例对第一种选择方式具体说明。
每个节点根据本节点所在的同步环(第一配置信息中)的当前位置,按照顺时针方向或者逆时针方向从本节点相邻的一个节点开始依次选择N个位置连续的节点。比如,构建的同步环如图3所示,按照顺序分别为节点1~节点10。以N等于2为例,则按照第一种确定N个节点的方式,则发送目标信息时,节点1生成目标信息后,选择排在节点1之后的节点2和节点3(这里节点2和节点3均为节点1的下一跳节点),并发送目标信息给节点2和节点3,节点2接收到节点1发送的目标信息后,发送该目标信息给节点3和节点4,节点3接收到节点1发送的目标信息后,发送该目标信息给节点4和节点5,以此类推,直到节点10接收到该目标信息为止。
可以看出,第一种选择N个节点标识的方式,在发送目标信息,存在重复发送的情况,比如节点1向节点3发送目标信息后,节点2也向节点3发送的目标信息。基于此,本申请实施例提供的第二种选择N个节点标识的方式,则去掉了重复发送的情况。
下面通过示例对第二种选择方式具体说明。
每个节点在选择时,按照顺时针方向或者逆时针方向从上一个节点选择的N个节点的最后一个节点相邻的一个节点开始,依次选择N个位置连续的节点。
即,第i个节点以第i+1+(i-1)*(N-1)个节点为起点开始在所述同步环的顺时针或者逆时针方向上选择连续的N个节点,[i+j+(i-1)*(N-1)]小于或者等于X。j=[1,N]。
具体的,每个节点可以按照如下公式确定本节点所需传播目标信息的N个节点,以保证不存在重复传播的目标信息。
基本步长:t=N-1。
f(x[i])=i+j+(i-i0)*t,(j=[1,N])。以第1个传播目标信息的节点对应的节点标识为i0,i表示排在i0后的第i个节点标识,f(x[i])表示选择的第f(x[i])个节点标识。
如果f(x[i])<=X,则传播节点为第f(x[i])个节点标识对应的节点。X表示集群中包括的节点数量,即监控环(第一配置信息中)包括的节点数量。
如果f(x[i])>X且节点i为第一个传播者(即节点i为集群中用于传播所述目标信息的首个节点),则f(x[i])=1;若不为第1个传播者,此时全局信息已同步,无需传播。
比如,集群中包括10个节点,节点1~节点10,节点1~节点10分别对应的节点标识为节点标识1~节点标识10,节点标识1与节点标识10相邻。同步环基于节点标识排序,构建的同步环如图4所示,按照顺序分别为节点标识1~节点标识10。以N等于2为例,则按照上述第二种选择N个节点的方式。节点1在生成的目标信息中包括节点1的节点标识,即节点标识1。节点1选择同步环的顺时针方向上或者逆时针方式上排在节点标识1之后的节点标识2和节点标识3,从而发送目标信息给节点标识2对应的节点2和节点标识3对应的节点3,节点2接收到节点1发送的该目标信息后,根据目标信息确定节点标识1对应的节点1为第1个传播该目标信息的节点,从而根据同步环,以及第二种选择N个节点的方式选择节点标识4和节点标识5,从而发送该目标信息给节点标识4对应的节点4和节点标识5对应的节点5,同理节点3发送目标信息给节点6和节点7,节点4发送目标信息给节点8和节点9,节点5发送目标信息给节点10,节点6~节点10在接收到目标信息后不再发送。
通过第二种选择N个节点的方式选择节点,由于每个节点仅发送一次目标信息,因此为了防止出现丢包现象,一方面,所述第i节点分别向所述N个节点发送所述目标信息后,若在预设时长未收到所述N个节点中任一节点基于所述目标信息发送的反馈信息时,所述第i节点可以再次向所述任一节点发送所述目标信息。其中反馈信息用于表征所述任一节点接收到所述目标信息。
另一方面,可以结合gossip算法,周期传播目标信息。具体的,所述第i节点分别向所述N个节点发送所述目标信息后且达到本周期的时间点时,再随机选择一个节点将该目标信息发送给随机选择的节点。在采用本申请实施例提供的选择同步环N个节点发送目标信息的情况下,再采用gossip算法,周期传播目标信息,从而防止采用本申请实施例提供的选择同步环N个节点发送目标信息发生丢包时,有些节点未收到目标信息的情况发生。本申请实施例中为了减小信息通信,可以将gossip周期设置的较长。
在采用本申请实施例提供的选择同步环上N个节点标识对应的N个节点发送目标信息的情况下,再在集群中确定一个中心节点。中心节点可以由用户指定,或者通过预设算法确定,且预设算法可以配置在每个节点中。该中心节点需要及时知道其它节点上的一些信息。比如,集群中包括10个节点,节点1~节点10,节点1~节点10分别对应的节点标识为节点标识1~节点标识10。构建的同步环包括10个节点标识,按照顺序分别为节点标识1~节点标识10,节点标识1与节点标识10相邻。以N等于2为例,并且节点5被确定为中心节点,若按照上述第二种选择N个节点标识的方式,则发送目标信息时,节点1先将目标信息发送给节点5,并发送目标信息给节点2和节点3,节点2在收到节点1发送的目标信息后,发送所述目标信息节点4~节点5。节点3在收到目标信息后,发送目标信息给节点6和节点7,节点4发送目标信息给节点8和节点9,节点5发送目标信息给节点10,节点6~节点10在接收到目标信息后不再发送。
本申请实施例中目标信息可以为某故障节点的故障信息,下面结合附图,对本申请实施例提供的故障检测方法进行具体说明,参见图5所示。所述集群中用于传播所述故障信息的首个节点(第1节点),可以为生成故障信息的节点。
集群中X个节点均按照如下第1节点进行故障检测的方式确定自身监控的M个节点是否发生故障。
S501,所述第1节点基于所述第二配置信息(监控环)监控按照监控环的顺时针方向或者逆时针方式(所述第一节点的上游节点对应的方向或者所述第一节点的下游节点对应的方向上)排在所述第1节点之后且与所述第1个节点相邻的M个节点是否发生故障。
所述监控环可以通过上述第一种~第三种构建监控环可能的方式的任意一种方式构建。
S502,所述第i节点在确定所述M个节点其中一节点发生故障,并生成发生故障的节点对应的故障信息。
在现有集群中,每个节点会被b个节点监控,b个节点向监控的节点发送心跳报文,若b个节点中w个节点发现预设时长内未收到该节点发送的心跳报文的反馈报文,则判断该节点故障。其中1<=w<=b。但是该种方式未考虑到亲和性关系,若具有亲和性关系的节点互相监控,当这些节点同时故障时,则无法及时的发现故障。基于此,在本申请实施例中可以采用第三种可能的方式构建监控环,即根据针对集群分成的k个亲和性组构建监控环,且尽量保证具有亲和性关系的节点在监控环上不相邻,从而在一定程度上避免了具有亲和性关系的节点互相监控的情况,进而提高了故障检测的可靠性。
本申请实施例中在同步上述故障信息时可以采用上述任一实施例所述的信息的同步方法来实现,此处不再赘述。
下面结合具体应用场景对节点的故障检测及故障信息同步方法进行具体说明。
设集群中有14个节点,分别对应的节点标识为{a1,a3,a4,a2,a5,b5,b2,b3,b4,b1,c3,c1,c3,c4},假设每个节点监控M=2个节点。
第一步:根据上述第三种可能的方式构建监控环。此实施例中以第三种可能的方式为例。
1)、根据集群中的14个节点之间的亲和性关系对14个节点对应的节点标识进行亲和性分组,比如,分组结果如下A={a1,a3,a4,a2,a5},B={b5,b2,b3,b4,b1},C={c3,c1,c2,c4}。
2)、对每个亲和性组进行排序,设排序后结果为:A’={a1,a2,a3,a4,a5},B’={b1,b2,b3,b4,b5},C’={c1,c2,c3,c4}。
3)、对分成的3个亲和性组进行排序,设排序后结果为:{A’={a1,a2,a3,a4,a5},B’={b1,b2,b3,b4,b5},C’={c1,c2,c3,c4}}。
4)、按照亲和性组的排序结果,循环依次从每个亲和性组选择一个节点标识放置到环上,最终构建成一个监控环,构建的监控环如图6所示。
基于图6,每个节点负责监控的节点对应的节点标识为:
{a1->(b1,c4)},{b1->(c4,a2)},{c4->(a2,b2)},{a2->(b2,c2)},{b2->(c2,a3)},{c2->(a3,b3)},{a3->(b3,c3)},{b3->(c3,a4)},{c3->(a4,b4)},{a4->(b4,c4)},{b4->(c4,a5)},{c4->(a5,b5)},{a5->(b5,a1)},{b5->(a1,b1)}。
第二步:发现故障节点或接收到故障信息,选择特定节点传播故障信息,以使得故障信息快速全局收敛,实现故障快速检测。
设节点a1监控到节点b1故障,具体监控参见图5所示的实现方式。则节点a1则为传播节点b1故障的故障信息的首个节点。在集群中每个节点根据如下方法同步故障信息”节点b1故障”,比如每个节点传播故障信息的节点数N=2,具体的每个节点采用上述第二种去重传播的方式确定待发送故障信息的N个节点:
发现节点b1故障的节点以及其他节点接收到”节点b1故障”信息时,可将构建的监控环中的故障节点b1删除后生成同步环,参见图7A以及图7B所示,或者在同步故障信息时将故障节点b1排除在外。从而每个接收到”节点b1故障”信息的节点基于上述第二种去重传播的方式确定待发送故障信息的N个节点后,向确定的N个节点发送故障信息,具体发送方式参见图7B所示:
{a1->(c4,a2)},{c4->(b2,c2)},{a2->(a3,b3)},{b2->(c3,a4)},{c2->(b4,c4)},{a3->(a5,b5)},{b3->{a1}}。
基于与方法实施例同样的发明构思,本申请实施例还提供了一种装置,参见图8所示,该装置800应用于集群中的每个节点。该装置800具体可以是节点中的处理器,或者芯片,或者芯片系统,或者是一个功能模块等。该装置可以包括获得单元801、确定单元802、发送单元803。其中获得单元801用于执行S201、S501以及S502,确定单元802用于执行S202,发送单元803用于执行S203,重复之处,此处不再赘述。
本申请实施例还提供另外一种节点的结构,如图9所示,节点900中可以包括通信接口910、处理器920。可选的,节点900中还可以包括存储器930。其中,存储器930可以设置于节点内部,还可以设置于节点外部。上述图8中所示的获得单元801、确定单元802均可以由处理器920实现。发送单元803可以由通信接口910实现。处理器920通过通信接口910接收信息或者消息,并用于实现图2、图5中所述的节点所执行的方法。在实现过程中,处理流程的各步骤可以通过处理器920中的硬件的集成逻辑电路或者软件形式的指令完成图2、图5中所述的任一节点所执行的方法。
本申请实施例中通信接口910可以是电路、总线、收发器或者其它任意可以用于进行信息交互的装置。其中,示例性地,该其它装置可以是与该会话管理设备900相连的设备,比如,该其它装置可以是其它节点等。
本申请实施例中处理器920可以是通用处理器、数字信号处理器、专用集成电路、现场可编程门阵列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件单元组合执行完成。处理器920用于实现上述方法所执行的程序代码可以存储在存储器930中。存储器930和处理器920耦合。
本申请实施例中的耦合是装置、单元或模块之间的间接耦合或通信连接,可以是电性,机械或其它的形式,用于装置、单元或模块之间的信息交互。
处理器920可能和存储器930协同操作。存储器930可以是非易失性存储器,比如硬盘(hard disk drive,HDD)或固态硬盘(solid-state drive,SSD)等,还可以是易失性存储器(volatile memory),例如随机存取存储器(random-access memory,RAM)。存储器930是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。
本申请实施例中不限定上述通信接口910、处理器920以及存储器930之间的具体连接介质。本申请实施例在图9中以存储器930、处理器920以及通信接口910之间通过总线连接,总线在图9中以粗线表示,其它部件之间的连接方式,仅是进行示意性说明,并不引以为限。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图9中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
基于以上实施例,本申请实施例还提供了一种计算机存储介质,该存储介质中存储软件程序,该软件程序在被一个或多个处理器读取并执行时可实现上述任意一个或多个实施例提供的方法。所述计算机存储介质可以包括:U盘、移动硬盘、只读存储器、随机存取存储器、磁碟或者光盘等各种可以存储程序代码的介质。
基于以上实施例,本申请实施例还提供了一种芯片,该芯片包括处理器,用于实现上述任意一个或多个实施例所涉及的功能,例如获取或处理上述方法中所涉及的信息或者消息。可选地,所述芯片还包括存储器,所述存储器,用于处理器所执行必要的程序指令和数据。该芯片,可以由芯片构成,也可以包含芯片和其他分立器件。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (15)
1.一种在多个节点中同步目标信息的方法,其特征在于,所述多个节点中包括第一节点,包括:
所述第一节点得到所述目标信息;
所述第一节点在所述第一节点保存的第一配置信息中根据同步传输策略,确定所述第一节点的至少一个下一跳节点,所述第一配置信息表示所述多个节点的次序,所述多个节点的次序对应环形拓扑结构,在所述多个节点的次序中,所述多个节点中的每个节点都有一个与之相邻的上游节点和下游节点,所述同步传输策略为所述多个节点中的每个节点,都按照所述每个节点的上游节点对应的方向或者都按照所述每个节点的下游节点对应的方向,从与所述每个节点距离较近的一组节点中得到所述目标信息对应的至少一个下一跳节点;
所述第一节点向所述目标信息对应的所述至少一个下一跳节点发送所述目标信息。
2.如权利要求1所述的方法,其特征在于,所述多个节点的次序为所述多个节点中每个节点的节点标识按照从大到小或者从小到大排列后的顺序,且最小值对应的节点的其中一个相邻节点为最大值对应的节点;或者,
所述多个节点的次序为所述多个节点中每个节点对应的哈希值按照从大到小或者从小到大排列后的顺序,且哈希值最小的节点的其中一个相邻节点为哈希值最大的节点,所述节点对应的哈希值为基于哈希算法针对该节点的节点标识计算得到的。
3.如权利要求1或2所述的方法,其特征在于,所述第一节点在所述第一节点保存的第一配置信息中根据同步传输策略,确定所述第一节点的至少一个下一跳节点,包括:
所述第一节点按照所述多个节点的次序,选择在所述第一节点的上游节点对应的方向上,与所述第一节点相邻的至少一个下一跳节点;或者,
所述第一节点按照所述多个节点的次序,选择在所述第一节点的下游节点对应的方向上,与所述第一节点相邻的至少一个下一跳节点。
4.如权利要求1或2所述的方法,其特征在于,所述第一节点在所述第一节点保存的第一配置信息中根据同步传输策略,确定所述第一节点的至少一个下一跳节点,包括:
所述第一节点按照所述多个节点的次序,选择在所述第一节点的上游节点对应的方向上,第i+j+(i-1)*(N-1)个节点,j=[1,N],且满足所述[i+j+(i-1)*(N-1)]<=X;或者,
所述第一节点按照所述多个节点的次序,选择在所述第一节点的下游节点对应的方向上,第i+j+(i-1)*(N-1)个节点;
所述第一节点为所述多个节点的次序中,用于同步所述目标信息的第i个节点,X为第一配置信息所表示的节点的数量,N等于所述第一节点确定的下一跳节点的数量。
5.如权利要求1或2所述的方法,其特征在于,所述目标信息为故障节点对应的故障信息;
所述第一节点得到目标信息,包括:
所述第一节点基于所述第一节点中的第二配置信息监控所述第一节点的上游节点对应的方向或者所述第一节点的下游节点对应的方向上,与所述第一节点相邻的至少一个节点是否发生故障;所述第二配置信息表示所述多个节点的次序,所述多个节点的次序对应环形拓扑结构,在所述多个节点的次序中,所述多个节点中的每个节点都有一个与之相邻的上游节点和下游节点;
所述第一节点在确定所述至少一个节点其中一节点发生故障时,生成发生故障的节点对应的故障信息。
6.如权利要求5所述的方法,其特征在于,所述多个节点被划分为至少两个亲和性组,在同一亲和性组中的各个节点间存在关联关系;第一亲和性组包括的任意两个节点在所述第一配置信息中不相邻,所述第一亲和性组为所述至少两个亲和性组中除节点数量最多的亲和性组以外的任一亲和性组。
7.一种在多个节点中同步目标信息的装置,其特征在于,所述装置应用于所述多个节点中包括的第一节点,包括:
获得单元,用于得到所述目标信息;
确定单元,用于在所述第一节点保存的第一配置信息中根据同步传输策略,确定所述第一节点的至少一个下一跳节点,所述第一配置信息表示所述多个节点的次序,所述多个节点的次序对应环形拓扑结构,在所述多个节点的次序中,所述多个节点中的每个节点都有一个与之相邻的上游节点和下游节点,所述同步传输策略为所述多个节点中的每个节点,都按照所述每个节点的上游节点对应的方向或者都按照所述每个节点的下游节点对应的方向,从与所述每个节点距离较近的一组节点中得到所述目标信息对应的至少一个下一跳节点;
发送单元,用于向所述目标信息对应的所述至少一个下一跳节点发送所述目标信息。
8.如权利要求7所述的装置,其特征在于,所述多个节点的次序为所述多个节点中每个节点的节点标识按照从大到小或者从小到大排列后的顺序,且最小值对应的节点的其中一个相邻节点为最大值对应的节点;或者,
所述多个节点的次序为所述多个节点中每个节点对应的哈希值按照从大到小或者从小到大排列后的顺序,且哈希值最小的节点的其中一个相邻节点为哈希值最大的节点,所述节点对应的哈希值为基于哈希算法针对该节点的节点标识计算得到的。
9.如权利要求7或8所述的装置,其特征在于,所述确定单元,具体用于:
按照所述多个节点的次序,选择在所述第一节点的上游节点对应的方向上,与所述第一节点相邻的至少一个下一跳节点;或者,
按照所述多个节点的次序,选择在所述第一节点的下游节点对应的方向上,与所述第一节点相邻的至少一个下一跳节点。
10.如权利要求7或8所述的装置,其特征在于,所述确定单元,具体用于:
按照所述多个节点的次序,选择在所述第一节点的上游节点对应的方向上,第i+j+(i-1)*(N-1)个节点,j=[1,N],且满足所述[i+j+(i-1)*(N-1)]<=X;或者,
按照所述多个节点的次序,选择在所述第一节点的下游节点对应的方向上,第i+j+(i-1)*(N-1)个节点;
所述第一节点为所述多个节点的次序中,用于同步所述目标信息的第i个节点,X为第一配置信息所表示的节点的数量,N等于所述第一节点确定的下一跳节点的数量。
11.如权利要求7或8所述的装置,其特征在于,所述目标信息为故障节点对应的故障信息,所述第一节点为同步所述目标信息的首个节点;
所述获得单元,具体用于:
基于所述第一节点中的第二配置信息监控所述第一节点的上游节点对应的方向或者所述第一节点的下游节点对应的方向上,与所述第一节点相邻的至少一个节点是否发生故障;所述第二配置信息表示所述多个节点的次序,所述多个节点的次序对应环形拓扑结构,在所述多个节点的次序中,所述多个节点中的每个节点都有一个与之相邻的上游节点和下游节点;在确定所述至少一个节点其中一节点发生故障时,生成发生故障的节点对应的故障信息。
12.如权利要求11所述的装置,其特征在于,所述多个节点被划分为至少两个亲和性组,在同一亲和性组中的各个节点间存在关联关系;第一亲和性组包括的任意两个节点在所述第一配置信息中不相邻,所述第一亲和性组为所述至少两个亲和性组中除节点数量最多的亲和性组以外的任一亲和性组。
13.一种在多个节点中同步目标信息的装置,其特征在于,所述装置应用于所述多个节点中包括的任一节点,包括:
通信接口、处理器和存储器;
所述存储器用于存储软件程序,所述处理器用于读取所述存储器中存储的软件程序,通过所述通信接口收发数据,并实现权利要求1至6任一项所述的方法。
14.一种在多个节点中同步目标信息的系统,其特征在于,所述系统中包括多个节点;
所述多个节点中每个节点均保存第一配置信息且配置有同步传输策略;
其中,所述第一配置信息表示所述多个节点的次序,所述多个节点的次序对应环形拓扑结构,在所述多个节点的次序中,所述多个节点中的每个节点都有一个与之相邻的上游节点和下游节点;所述同步传输策略为所述多个节点中的每个节点,都按照同步方向从与所述每个节点距离较近的一组节点中得到所述目标信息对应的至少一个下一跳节点,所述同步方向为所述每个节点的上游节点对应的方向或者所述每个节点的下游节点对应的方向;
所述多个节点中的第一节点生成目标信息,在所述第一配置信息中根据同步传输策略,确定所述第一节点的至少一个下一跳节点,并向所述第一节点的至少一个下一跳节点发送所述目标信息;所述第一节点为同步所述目标信息的首个节点;
第二节点接收到上一跳节点发送的目标信息后,在所述第一配置信息中根据同步传输策略,确定所述第二节点的至少一个下一跳节点,并向所述第二节点的至少一个下一跳节点发送所述目标信息;所述第二节点为在所述同步方向上第一节点至第三节点之间的任一节点;
第三节点接收到上一跳节点发来的所述目标信息后,停止发送所述目标信息;
其中,所述第三节点为所述同步方向的逆方向上与所述第一节点相邻的节点。
15.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储软件程序,所述软件程序在被一个或多个处理器读取并执行时可实现权利要求1~6任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810278773.4A CN110324166B (zh) | 2018-03-31 | 2018-03-31 | 一种在多个节点中同步目标信息的方法、装置及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810278773.4A CN110324166B (zh) | 2018-03-31 | 2018-03-31 | 一种在多个节点中同步目标信息的方法、装置及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110324166A CN110324166A (zh) | 2019-10-11 |
CN110324166B true CN110324166B (zh) | 2020-12-15 |
Family
ID=68111935
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810278773.4A Active CN110324166B (zh) | 2018-03-31 | 2018-03-31 | 一种在多个节点中同步目标信息的方法、装置及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110324166B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112099389B (zh) * | 2020-06-16 | 2021-07-13 | 中国人民解放军战略支援部队航天工程大学 | 基于1pps的上下行前端机同步采集方法及系统 |
CN111934841B (zh) * | 2020-09-23 | 2021-01-22 | 三维通信股份有限公司 | 参考时钟的确定方法和装置、系统、存储介质及电子装置 |
CN112445658B (zh) * | 2020-10-30 | 2023-03-03 | 深圳云天励飞技术股份有限公司 | 信息同步方法及相关设备 |
CN115865701B (zh) * | 2023-02-21 | 2023-05-26 | 南京芯驰半导体科技有限公司 | 基于菊花链网络的节点控制方法、装置及系统 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1412977A (zh) * | 2001-10-10 | 2003-04-23 | 阿尔卡塔尔公司 | 在rpr网中传播故障信息的方法及相应rpr数据包 |
CN102057647A (zh) * | 2008-06-12 | 2011-05-11 | 爱立信电话股份有限公司 | 覆盖网络的维护 |
CN103023771A (zh) * | 2011-09-28 | 2013-04-03 | 华为技术有限公司 | 环形拓扑网络的故障处理方法、装置和一种路由设备 |
WO2013059966A1 (en) * | 2011-10-28 | 2013-05-02 | Telefonaktiebolaget L M Ericsson (Publ) | Protection in ring network of label switching routers |
CN106301853A (zh) * | 2015-06-05 | 2017-01-04 | 华为技术有限公司 | 集群系统中节点的故障检测方法和装置 |
CN107733980A (zh) * | 2017-09-11 | 2018-02-23 | 深圳市盛路物联通讯技术有限公司 | 基于环形网络的物联网数据传输系统及第一中继器 |
-
2018
- 2018-03-31 CN CN201810278773.4A patent/CN110324166B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1412977A (zh) * | 2001-10-10 | 2003-04-23 | 阿尔卡塔尔公司 | 在rpr网中传播故障信息的方法及相应rpr数据包 |
CN102057647A (zh) * | 2008-06-12 | 2011-05-11 | 爱立信电话股份有限公司 | 覆盖网络的维护 |
CN103023771A (zh) * | 2011-09-28 | 2013-04-03 | 华为技术有限公司 | 环形拓扑网络的故障处理方法、装置和一种路由设备 |
WO2013059966A1 (en) * | 2011-10-28 | 2013-05-02 | Telefonaktiebolaget L M Ericsson (Publ) | Protection in ring network of label switching routers |
CN106301853A (zh) * | 2015-06-05 | 2017-01-04 | 华为技术有限公司 | 集群系统中节点的故障检测方法和装置 |
CN107733980A (zh) * | 2017-09-11 | 2018-02-23 | 深圳市盛路物联通讯技术有限公司 | 基于环形网络的物联网数据传输系统及第一中继器 |
Also Published As
Publication number | Publication date |
---|---|
CN110324166A (zh) | 2019-10-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110324166B (zh) | 一种在多个节点中同步目标信息的方法、装置及系统 | |
CN107888562B (zh) | 一种平行链接入互联链的数据验证和收发方法、节点及系统 | |
KR102170345B1 (ko) | 뷰 변경 프로토콜을 종료하기 위한 시스템 및 방법 | |
JP6382454B2 (ja) | 分散ストレージ及びレプリケーションシステム、並びに方法 | |
EP3198467B1 (en) | System, method and apparatus for improving the performance of collective operations in high performance computing | |
EP3596888B1 (en) | System and method for ending view change protocol | |
WO2012082809A2 (en) | Supporting distributed key-based processes | |
CN108228397A (zh) | 一种集群间跨机房同步的方法和装置 | |
JP2014103674A (ja) | 集中制御を用いないネットワークにおける、同期したセルロック送信を提供する装置及び方法 | |
JP2013524663A5 (zh) | ||
Luo et al. | MCFsyn: A multi-party set reconciliation protocol with the marked cuckoo filter | |
US10362105B1 (en) | Generating probalistic data structures in gossip protocols | |
Guo et al. | DCube: A family of network structures for containerized data centers using dual-port servers | |
CN105812492B (zh) | 一种数据同步方法及系统 | |
WO2013166978A1 (zh) | 多处理器系统的节点路由方法、控制器及多处理器系统 | |
CN117278567A (zh) | 集群负载均衡方法及装置 | |
CN113395357B (zh) | 区块链系统的分片方法及装置 | |
US8321543B2 (en) | System and method for determining weak membership in set of computer nodes | |
CN102647424B (zh) | 一种数据传输方法及其装置 | |
Zhao et al. | On peer-assisted data dissemination in data center networks: Analysis and implementation | |
US20170317923A1 (en) | Method for quick reconfiguration of routing in the event of a fault in a port of a switch | |
US11070303B2 (en) | Management message loop detection in precision time protocol | |
CN110865987A (zh) | 一种文件同步方法、装置、设备及介质 | |
CN113225175B (zh) | 通过流言协议实现有向无环图共识算法的系统和方法 | |
CN112039786B (zh) | 基于Torus网络的广播方法 |
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 |