分布式系统的业务处理方法及相关设备技术方案

技术编号:38135719 阅读:9 留言:0更新日期:2023-07-08 09:46
本申请提出一种分布式系统的业务处理方法及相关设备。其中方法包括:获取处理节点的本地任务信息;基于本地任务信息,确定处理节点在分布式系统中的参与状态;其中,参与状态包括:不参与指定为主节点的第一参与状态和参与指定为主节点的第二参与状态;在处理节点的参与状态为第一参与状态的情况下,放弃将该处理节点指定为主节点。本申请实施例通过根据处理节点的本地任务信息,确定处理节点的参与状态,再根据参与状态确定该处理节点是否参与指定为主节点。可以避免在处理节点的本地任务量大的情况下,再被指定为主节点时,影响业务处理的效率,降低用户的应用体验。降低用户的应用体验。降低用户的应用体验。

【技术实现步骤摘要】
分布式系统的业务处理方法及相关设备


[0001]本申请涉及计算机
和区块链
,尤其涉及一种分布式系统的业务处理方法及相关设备。

技术介绍

[0002]在分布式系统中,以多个主机作为处理节点,构成Raft集群。每个处理节点至少需要完成日志同步和数据存储的任务,以使得单个处理节点发生故障的情况下,其他处理节点可以正常提供服务。
[0003]在现有的处理方法中,处理节点在完成日志同步和数据存储的数据量较大的情况下,同时执行分布式系统的任务时,会影响处理效率。

技术实现思路

[0004]本申请实施例提供一种分布式系统的业务处理方法及相关设备,以解决相关技术存在的问题,技术方案如下:
[0005]第一方面,本申请实施例提供了一种分布式系统的业务处理方法,包括:
[0006]获取处理节点的本地任务信息;
[0007]基于本地任务信息,确定所述处理节点在分布式系统中的参与状态;其中所述参与状态包括:不参与指定为主节点的第一参与状态和参与指定为主节点的第二参与状态;
[0008]在所述处理节点的参与状态为所述第一参与状态的情况下,放弃将所述处理节点指定为主节点。
[0009]第二方面,本申请实施例提供了一种基于Raft共识算法的业务处理装置,包括:
[0010]信息获取模块,用于获取处理节点的本地任务信息;
[0011]参与状态确定模块,用于基于本地任务信息,确定所述处理节点在分布式系统中的参与状态;其中,所述参与状态包括:不参与指定为主节点的第一参与状态和参与指定为主节点的第二参与状态;指定模块,用于在所述处理节点的参与状态为所述第一参与状态的情况下,放弃将所述处理节点指定为主节点。
[0012]第三方面,本申请实施例提供了一种电子设备,该电子设备包括:至少一个处理器;以及与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,以使至少一个处理器能够执行上述Raft共识算法的任务处理方法。
[0013]第四方面,本申请实施例提供了一种计算机可读存储介质,计算机可读存储介质存储计算机指令,当计算机指令在计算机上运行时,上述各方面任一种实施方式中的方法被执行。
[0014]上述技术方案中的优点或有益效果至少包括:
[0015]本申请实施例通过根据处理节点的本地任务信息,确定处理节点的参与状态,再根据参与状态确定该处理节点是否可以被指定为主节点。可以避免在处理节点的本地任务量大的情况下,再被指定为主节点时,影响业务处理的效率,降低用户的应用体验。
[0016]上述概述仅仅是为了说明书的目的,并不意图以任何方式进行限制。除上述描述的示意性的方面、实施方式和特征之外,通过参考附图和以下的详细描述,本申请进一步的方面、实施方式和特征将会是容易明白的。
附图说明
[0017]在附图中,除非另外规定,否则贯穿多个附图相同的附图标记表示相同或相似的部件或元素。这些附图不一定是按照比例绘制的。应该理解,这些附图仅描绘了根据本申请公开的一些实施方式,而不应将其视为是对本申请范围的限制。
[0018]图1示出根据本申请一实施例的分布式系统的业务处理方法的应用场景示意图。
[0019]图2示出根据本申请一实施例的分布式系统的业务处理方法的流程示意图。
[0020]图3示出根据本申请一实施例的日志同步示意图。
[0021]图4示出图2中步骤S220的子步骤流程示意图。
[0022]图5示出根据本申请另一实施例的分布式系统的业务处理方法的流程示意图。
[0023]图6示出根据本申请另一实施例的分布式系统的业务处理装置的示意性结构框图。
[0024]图7是用来实现本申请实施例的分布式系统的业务处理方法的电子设备的框图。
具体实施方式
[0025]在下文中,仅简单地描述了某些示例性实施例。正如本领域技术人员可认识到的那样,在不脱离本申请的精神或范围的情况下,可通过各种不同方式修改所描述的实施例。因此,附图和描述被认为本质上是示例性的而非限制性的。
[0026]Raft是一种共识算法(分布式一致性算法)。共识算法可以应用于分布式领域或者区块链
,意思就是让分布式集群中的各个处理节点对某些信息或状态达成共识。如图1所示,一个Raft集群可以包含多个处理节点,它能够容忍一部分处理节点的宕机,只需要集群中的一个处理节点保持正常工作,Raft集群也就能正常工作。每个处理节点包括数据存储单元和逻辑处理单元。数据存储单元用于将数据存储至本地数据库中,逻辑处理单元(Raft)至少用于日志记录,保持多个处理节点之间的日志同步。
[0027]Raft集群的多个处理节点中,通过预设的指定规则(投票机制)选择其中的一个处理节点指定为主节点(leader),其他的处理节点为从节点(follower)。处理节点作为主节点时,有一个任期。在任期满了之后,会再次通过指定规则,从多个从节点中选择其中的一个指定为主节点。主节点用于与用户端之间进行交互,接收业务请求,完成写入数据等任务;从节点用于接收主节点的任务,为主节点执行读取数据等任务,多个从节点接收主节点的指令,以完成不同的读取数据等任务。
[0028]主节点和多个从节点之间,为了实现只要一个处理节点保持正常工作,Raft集群就能正常工作,多个从节点需要同步主节点的日志记录,也即复刻与主节点相同的日志记录。多个从节点还需要接收和存储数据,将数据存储于以键值对的方式存储的KV(Key

value)数据库中,如LSM

Tree(Log

Structured Merge Tree,日志结构合并树)数据库。在一些情况下,会有相同的数据占用多个不同的键值,需要通过数据库压缩(compact),使得同一数据占用一个键值,以释放存储空间。
[0029]因此,Raft集群中的处理节点,除了要与主节点交互或者与其他从节点交互之外,还需要处理本地任务,例如日志同步、数据存储和数据库压缩等。在从节点的本地任务量大的情况下,再被选为主节点时,影响业务处理的效率,降低用户的应用体验。
[0030]为了提高分布式系统的业务处理效率,本申请一实施例提供一种基于Raft共识算法的业务处理方法,以下以主节点为执行主体描述本方法。
[0031]图2示出根据本申请一实施例的分布式系统的业务处理方法的流程图。如图2所示,该分布式系统的业务处理方法可以包括:
[0032]S210,获取处理节点的本地任务信息。
[0033]获取处理节点的本地任务信息可以是获取多个从节点的本地任务信息,也可以是获取主节点的本地任务信息。
[0034]在一个示例中,在Raft集群的指定规则为一个处理节点不能连续指定为主节点的情况下,可以不获取主节点的本地任务信信息,只获取多个从节点的本地任务信息。
[0035]本申请实施例中,获取处理节点的本地任务信息,本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种分布式系统的业务处理方法,其特征在于,包括:获取处理节点的本地任务信息;基于所述本地任务信息,确定所述处理节点在分布式系统中的参与状态;其中,所述参与状态包括:不参与指定为主节点的第一参与状态和参与指定为主节点的第二参与状态;在所述处理节点的参与状态为所述第一参与状态的情况下,放弃将所述处理节点指定为主节点。2.根据权利要求1所述的方法,其特征在于,所述获取处理节点的本地任务信息,包括:获取所述处理节点的日志同步数据量和数据库压缩信息;所述日志同步数据量为日志索引与主节点日志索引之间的偏差;对应地,所述基于所述本地任务信息,确定所述处理节点在分布式系统中的参与状态,包括:在所述日志同步数据量超过第一预设阈值,且所述数据库压缩信息处于待压缩状态的情况下,确定所述处理节点的参与状态为所述第一参与状态。3.根据权利要求2所述的方法,其特征在于,所述基于所述本地任务信息,确定所述处理节点在分布式系统中的参与状态,还包括:在所述日志同步数据量小于第二预设阈值,且所述数据库压缩信息未处于待压缩状态的情况下,确定所述处理节点的参与状态为所述第二参与状态;对应地,所述方法还包括:在所述处理节点的参与状态为所述第二参与状态的情况下,根据预设的指定规则指定所述处理节点为主节点。4.根据权利要求1所述的方法,其特征在于,所述获取处理节点的本地任务信息,包括:获取所述处理节点的数据库压缩信息;对应地,所述基于所述本地任务信息,确定所述处理节点的参与状态,包括:获取所述分布式系统中处理节点的数量;在所述处理节点的数量超过第三预设阈值的情况下,确定所述数据库压缩信息处于待压缩状态的多个处理节点的参与状态均为第一参与状态。5.根据权利要求1所述的方法,其特征在于,所述基于所述本地任务信息,确定所述处理节点的参与状态,包括:基于所述本地任务信息,获得所述处理节点的任务量;基于多个处理节点的任务量,进行任务量排序;基于排序结果,确定预设数量的多个处理节点的参与...

【专利技术属性】
技术研发人员:刘易梁松涛何钧
申请(专利权)人:上海哔哩哔哩科技有限公司
类型:发明
国别省市:

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

1