一种实现复制状态机的方法、系统、设备和存储介质技术方案

技术编号:38407033 阅读:12 留言:0更新日期:2023-08-07 11:15
本发明专利技术提供一种实现复制状态机的方法、系统、设备和存储介质,方法包括:对每个集群状态进行封装,提供读接口、写接口和注册变更回调接口;按照业务逻辑将待实现的复制状态机划分成多个子模块,并将每个子模块对应一个模块级状态机;根据所述读接口和写接口利用基础事件运转模块级状态机;以及响应于集群状态改变,通过所述注册变更回调接口对多个模块级状态机之间的状态进行交互。本发明专利技术通过将复制状态机中的动作抽象为几个简单逻辑,如读写集群状态、集群状态变更、模块级状态机运转等,从而大大减轻了复制状态机的设计和编码难度。这种设计使得复制状态机的实现更加高效、灵活,并可以更好地适应各种业务系统的需求。以更好地适应各种业务系统的需求。以更好地适应各种业务系统的需求。

【技术实现步骤摘要】
一种实现复制状态机的方法、系统、设备和存储介质


[0001]本专利技术涉及分布式系统领域,更具体地,特别是指一种实现复制状态机的方法、系统、设备和存储介质。

技术介绍

[0002]在分布式系统中,为了应对软件故障、设备掉电、网络分区等意外情况,保证系统的可用性,通常会采用共识算法,如Paxos和Raft算法,来提升系统的容错性。在实际系统中,共识算法需要结合复制状态机技术来保证系统的可用性。对于小规模的键值数据库而言,复制状态机收到复制日志后,通常就是简单的对键进行赋值和取值操作。然而,对于大型的存储系统而言,由于业务逻辑比较复杂,系统内部需要细分多个模块,模块之间需要根据各自的集群状态进行一定的联动,导致复制状态机的设计和实现非常困难。

技术实现思路

[0003]有鉴于此,本专利技术实施例的目的在于提出一种实现复制状态机的方法、系统、电子设备及计算机可读存储介质,本专利技术将复制状态机根据业务逻辑划分成若干子模块,将状态机的实现细节和业务逻辑分离,简化业务逻辑设计和编码实现,降低了复杂度和维护成本,提高了系统的可维护性和可扩展性,本专利技术实施例为分布式系统中的复制状态机的实现提供了一种简单、高效、可靠的解决方案,具有广泛的应用前景。
[0004]基于上述目的,本专利技术实施例的一方面提供了一种实现复制状态机的方法,包括如下步骤:对每个集群状态进行封装,提供读接口、写接口和注册变更回调接口;按照业务逻辑将待实现的复制状态机划分成多个子模块,并将每个子模块对应一个模块级状态机;根据所述读接口和写接口利用基础事件运转模块级状态机;以及响应于集群状态改变,通过所述注册变更回调接口对多个模块级状态机之间的状态进行交互。
[0005]在一些实施方式中,所述提供读接口、写接口和注册变更回调接口包括:设置所述注册变更回调接口对集群状态进行订阅,并响应于集群状态发生变化,调用注册的回调函数。
[0006]在一些实施方式中,所述根据所述读接口和写接口利用基础事件运转模块级状态机包括:将所述模块级状态机抽象成输入、计算和输出操作。
[0007]在一些实施方式中,所述根据所述读接口和写接口利用基础事件运转模块级状态机包括:读取输入端的集群状态,根据特定的业务逻辑对所述输入端的集群状态进行计算,并把计算结果写入到输出集群状态中。
[0008]在一些实施方式中,所述通过所述注册变更回调接口对多个模块级状态机之间的状态进行交互包括:多个模块级状态机之间通过注册变更回调的方式利用派生事件进行交互。
[0009]在一些实施方式中,所述多个模块级状态机之间通过注册变更回调的方式利用派生事件进行交互包括:响应于任意模块级状态机的集群状态发生变更,生成对应的派生事
件,并将所述派生事件添加到派生事件列表中。
[0010]在一些实施方式中,所述多个模块级状态机之间通过注册变更回调的方式利用派生事件进行交互包括:响应于当前的基础事件处理完毕,处理所述派生事件列表中的所有派生事件;以及响应于所述派生事件列表中的所有派生事件均处理完成,开始处理下一个基础事件。
[0011]本专利技术实施例的另一方面,提供了一种实现复制状态机的系统,包括:封装模块,用于对每个集群状态进行封装,提供读接口、写接口和注册变更回调接口;划分模块,用于按照业务逻辑将待实现的复制状态机划分成多个子模块,并将每个子模块对应一个模块级状态机;运转模块,用于根据所述读接口和写接口利用基础事件运转模块级状态机;以及交互模块,用于响应于集群状态改变,通过所述注册变更回调接口对多个模块级状态机之间的状态进行交互。
[0012]本专利技术实施例的又一方面,还提供了一种电子设备,包括:至少一个处理器;以及存储器,所述存储器存储有可在所述处理器上运行的计算机指令,所述指令由所述处理器执行时实现如上方法的步骤。
[0013]本专利技术实施例的再一方面,还提供了一种计算机可读存储介质,计算机可读存储介质存储有被处理器执行时实现如上方法步骤的计算机程序。
[0014]本专利技术具有以下有益技术效果:将复制状态机根据业务逻辑划分成若干子模块,将状态机的实现细节和业务逻辑分离,简化业务逻辑设计和编码实现,降低了复杂度和维护成本,提高了系统的可维护性和可扩展性,本专利技术实施例为分布式系统中的复制状态机的实现提供了一种简单、高效、可靠的解决方案,具有广泛的应用前景。
附图说明
[0015]为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的实施例。
[0016]图1为本专利技术提供的实现复制状态机的方法的实施例的示意图;
[0017]图2为本专利技术提供的实现复制状态机的系统的实施例的示意图;
[0018]图3为本专利技术提供的实现复制状态机的电子设备的实施例的硬件结构示意图;
[0019]图4为本专利技术提供的实现复制状态机的计算机存储介质的实施例的示意图。
具体实施方式
[0020]为使本专利技术的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本专利技术实施例进一步详细说明。
[0021]需要说明的是,本专利技术实施例中所有使用“第一”和“第二”的表述均是为了区分两个相同名称非相同的实体或者非相同的参量,可见“第一”“第二”仅为了表述的方便,不应理解为对本专利技术实施例的限定,后续实施例对此不再一一说明。
[0022]本专利技术实施例的第一个方面,提出了一种实现复制状态机的方法的实施例。图1示出的是本专利技术提供的实现复制状态机的方法的实施例的示意图。如图1所示,本专利技术实施例
包括如下步骤:
[0023]S1、对每个集群状态进行封装,提供读接口、写接口和注册变更回调接口;
[0024]S2、按照业务逻辑将待实现的复制状态机划分成多个子模块,并将每个子模块对应一个模块级状态机;
[0025]S3、根据所述读接口和写接口利用基础事件运转模块级状态机;以及
[0026]S4、响应于集群状态改变,通过所述注册变更回调接口对多个模块级状态机之间的状态进行交互。
[0027]在分布式系统中,为了应对软件故障、设备掉电、网络分区等意外情况,保证系统的可用性,通常会采用共识算法来提升系统的容错性。共识算法使得多个服务器像一个协同的群体一样工作,即使部分服务器出现故障,其余服务器也能够持续运行,保证整个系统的可用性。在实际系统中,共识算法需要结合复制状态机技术来保证系统的可用性。复制状态机运行于多个服务节点上,操作相同的状态副本,即使某些服务器下线,剩余服务器上的状态机也可以继续运行。复制状态机通常通过复制日志的方式来实现,而共识算法就是保证各个服务节点的复制状态机能收到相同的复制日志序列。每个服务节点拥有相同的初始状态,只要保证复制状态机能收到相同的复制日志,就能保证各个节点上的复制状态本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种实现复制状态机的方法,其特征在于,包括如下步骤:对每个集群状态进行封装,提供读接口、写接口和注册变更回调接口;按照业务逻辑将待实现的复制状态机划分成多个子模块,并将每个子模块对应一个模块级状态机;根据所述读接口和写接口利用基础事件运转模块级状态机;以及响应于集群状态改变,通过所述注册变更回调接口对多个模块级状态机之间的状态进行交互。2.根据权利要求1所述的实现复制状态机的方法,其特征在于,所述提供读接口、写接口和注册变更回调接口包括:设置所述注册变更回调接口对集群状态进行订阅,并响应于集群状态发生变化,调用注册的回调函数。3.根据权利要求1所述的实现复制状态机的方法,其特征在于,所述根据所述读接口和写接口利用基础事件运转模块级状态机包括:将所述模块级状态机抽象成输入、计算和输出操作。4.根据权利要求3所述的实现复制状态机的方法,其特征在于,所述根据所述读接口和写接口利用基础事件运转模块级状态机包括:读取输入端的集群状态,根据特定的业务逻辑对所述输入端的集群状态进行计算,并把计算结果写入到输出集群状态中。5.根据权利要求1所述的实现复制状态机的方法,其特征在于,所述通过所述注册变更回调接口对多个模块级状态机之间的状态进行交互包括:多个模块级状态机之间通过注册变更回调的方式利用派生事件进行交互。6.根据权利要求5所述的实现复制状态机的方法,其特征在于,所述多个模块级状态机之间通过注册变更回调...

【专利技术属性】
技术研发人员:郭强赵鹏
申请(专利权)人:苏州浪潮智能科技有限公司
类型:发明
国别省市:

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

1