基于Raft算法的轨道交通系统控制方法、系统和存储介质技术方案

技术编号:38817775 阅读:16 留言:0更新日期:2023-09-15 19:56
本发明专利技术公开了一种基于Raft算法的轨道交通系统控制方法和系统以及存储介质,其中,轨道交通系统包括多个分布式应用服务和多个服务实例,基于Raft算法的轨道交通系统控制方法包括:每个应用服务对应的Raft集群均根据Raft算法从多个服务实例中选举出对应应用服务的leader实例;多个Raft集群分别通过选举出的leader实例响应对应应用服务的触发信号。本发明专利技术的基于Raft算法的轨道交通系统控制方法,可实现多个服务实例之间的状态数据共享,且分布式应用服务对网络的容错性高,提升系统运行稳定性,减少资源浪费。减少资源浪费。减少资源浪费。

【技术实现步骤摘要】
基于Raft算法的轨道交通系统控制方法、系统和存储介质


[0001]本专利技术涉及轨道交通
,尤其是涉及一种基于Raft算法的轨道交通系统控制方法、系统和存储介质。

技术介绍

[0002]在轨道交通系统中,通常采用基于不共享状态的主备结构的方案或基于流量复制的状态共享方法等对轨道交通系统中的多种事件以及系统中的状态数据进行处理。
[0003]在相关技术中,采用基于不共享状态的主备结构的方案不能实现多个服务实例之间的状态数据共享,而采用基于流量复制的状态共享方法进行数据处理时,网络的容错性比较低。以及上述两种控制方法,都需要设置至少两台物理设备,但是,两台物理设备在实际运行时的状态通常为一冷一热,即一台设备在工作,另外一台设备则处于空闲状态,因此会造成较大的控制资源浪费的情况。

技术实现思路

[0004]本专利技术旨在至少解决现有技术中存在的技术问题之一。为此,本专利技术的目的之一在于提出一种基于Raft算法的轨道交通系统控制方法,可实现多个服务实例之间的状态数据共享,且分布式应用服务对网络的容错性高,提升系统运行稳定性,减少资源浪费。
[0005]本专利技术的目的之二在于提出一种基于Raft算法的轨道交通系统控制系统。
[0006]本专利技术的目的之三在于提出一种计算机可读存储介质。
[0007]为了达到上述目的,本专利技术第一方面实施例提出的基于Raft算法的轨道交通系统控制方法,轨道交通系统包括多个分布式应用服务和多个服务实例,所述轨道交通系统控制方法包括:每个所述应用服务对应的Raft集群均根据Raft算法从多个所述服务实例中选举出对应所述应用服务的leader实例;多个所述Raft集群分别通过选举出的leader实例响应对应应用服务的触发信号。
[0008]根据本专利技术实施例的基于Raft算法的轨道交通系统控制方法,通过将轨道交通系统分为多个分布式应用服务,并针对每个应用服务均设置一个对应的Raft集群,且多个Raft集群中包含多个服务实例,多个服务实例之间可以进行状态数据共享。多个Raft集群运行多组Raft算法,能保证一个Raft集群中的多个服务实例的状态数据高度一致,并且集群与集群之间不会相互影响。以及,多个Raft集群同时运行多组Raft算法,也就是说,对于每一个应用服务均能选出一个leader实例用于对外提供服务,能有效改善系统中的控制资源浪费的情况,还有利于均衡所接负载。
[0009]此外,由于分布式系统具备天然的容错特性,则设置轨道交通系统包括多个分布式应用服务,为该轨道交通系统的服务提供了一个高效的容错方案,多个服务实例之间的实时状态数据同步,能使得各个应用服务中任何一个单一服务实例下线都不会影响整个系统的数据的完整性,保证整个系统能稳定地运行,提升轨道交通系统的安全性。
[0010]在本专利技术的一些实施例中,所述轨道交通系统控制方法,还包括:当任意一个所述
Raft集群的leader实例下线时,失去所述leader实例的Raft集群在leader任期时间到达后进入选举流程并选举出新的leader实例。
[0011]在本专利技术的一些实施例中,失去所述leader实例的Raft集群在leader任期时间到达后进入选举流程并选举出新的leader实例,包括:失去所述leader实例的Raft集群在leader任期时间到达后进入选举流程;失去所述leader实例的Raft集群中在线的候选实例根据Raft算法进行投票,选举出享有已下线leader实例的完整日志数据或最新日志数据的候选实例为新的leader实例。
[0012]在本专利技术的一些实施例中,多个所述服务实例的数量为奇数。
[0013]在本专利技术的一些实施例中,多个所述服务实例的数量小于或等于7个。
[0014]在本专利技术的一些实施例中,当所述服务实例的数量为三个时,容忍多个所述服务实例中的一个服务实例下线;当所述服务实例的数量为五个时,容忍多个所述服务实例中的两个服务实例下线;当所述服务实例的数量为七个时,容忍多个所述服务实例中的三个服务实例下线。
[0015]在本专利技术的一些实施例中,所述轨道交通系统控制方法,还包括:在下线的前leader实例重新上线后,所述前leader实例进入跟随状态;当所述前leader实例接收到所属的Raft集群的当前leader实例的心跳包时,所述前leader实例同步所属的Raft集群对应应用服务的状态数据。
[0016]在本专利技术的一些实施例中,所述轨道交通系统控制方法,还包括:当服务实例具有的所属的Raft集群对应应用服务的状态数据不完整时,所述服务实例不具备成为leader实例的资格。
[0017]为了达到上述目的,本专利技术第二方面实施例提出的基于Raft算法的轨道交通系统控制系统,包括:至少一个处理器;与所述至少一个处理器通信连接的存储器;其中,所述存储器中存储有可被所述至少一个处理器执行的计算机程序,所述至少一个处理器执行所述计算机程序时实现上面任一项所述的基于Raft算法的轨道交通系统的控制方法。
[0018]根据本专利技术实施例提出的基于Raft算法的轨道交通系统控制系统,至少一个处理器执行存储器中存储的计算机程序时以实现上面实施例的基于Raft算法的轨道交通系统的控制方法,通过采用该控制方法,使多个服务实例之间可以进行状态数据共享,有利于保护系统数据的完整性,进而保证整个系统能稳定地运行。并且多个Raft集群运行多组Raft算法,能保证一个Raft集群中的多个服务实例的状态数据高度一致,通过选举出多个leader实例用于对外提供服务,能有效改善系统中的控制资源浪费的情况,还有利于均衡所接负载。
[0019]为了达到上述目的,本专利技术第三方面实施例还提出一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上面任一项所述的基于Raft算法的轨道交通系统的控制方法。
[0020]根据本专利技术实施例的计算机存储介质,其上存储有计算机程序,计算机程序被处理器执行时,可以实现上面实施例的基于Raft算法的轨道交通系统的控制方法,能实现多个服务实例之间可以进行状态数据共享,有利于维护系统数据完整,提升系统运行的稳定性和安全性。并且通过选举出多个leader实例用于对外提供服务,能有效改善系统中的控制资源浪费的情况,还有利于均衡所接负载。
[0021]本专利技术的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本专利技术的实践了解到。
附图说明
[0022]本专利技术的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得明显和容易理解,其中:
[0023]图1为根据本专利技术一个实施例的基于Raft算法的轨道交通系统控制方法的流程图;
[0024]图2为根据本专利技术一个实施例的Raft集群的示意图;
[0025]图3为根据本专利技术一个实施例的选举流程的示意图;
[0026]图4为根据本专利技术另一个实施例的选举流程的示意图;
本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于Raft算法的轨道交通系统控制方法,其特征在于,轨道交通系统包括多个分布式应用服务和多个服务实例,所述轨道交通系统控制方法包括:每个所述应用服务对应的Raft集群均根据Raft算法从多个所述服务实例中选举出对应所述应用服务的leader实例;多个所述Raft集群分别通过选举出的leader实例响应对应应用服务的触发信号。2.根据权利要求1所述的基于Raft算法的轨道交通系统控制方法,其特征在于,所述轨道交通系统控制方法,还包括:当任意一个所述Raft集群的leader实例下线时,失去所述leader实例的Raft集群在leader任期时间到达后进入选举流程并选举出新的leader实例。3.根据权利要求2所述的基于Raft算法的轨道交通系统控制方法,其特征在于,失去所述leader实例的Raft集群在leader任期时间到达后进入选举流程并选举出新的leader实例,包括:失去所述leader实例的Raft集群在leader任期时间到达后进入选举流程;失去所述leader实例的Raft集群中在线的候选实例根据Raft算法进行投票,选举出享有已下线leader实例的完整日志数据或最新日志数据的候选实例为新的leader实例。4.根据权利要求2或3所述的基于Raft算法的轨道交通系统控制方法,其特征在于,多个所述服务实例的数量为奇数。5.根据权利要求4所述的基于Raft算法的轨道交通系统控制方法,其特征在于,多个所述服务实例的数量小于或等于7个。6.根据权利要求5所述的基于Raft算法的轨道交通系统的控制...

【专利技术属性】
技术研发人员:郑成思
申请(专利权)人:比亚迪股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1