一种基于分布式协议的集群状态同步处理方法及其系统与流程

未命名 08-26 阅读:108 评论:0


1.本发明涉及数据状态同步的技术领域,尤其是涉及一种基于分布式协议的集群状态同步处理方法及其系统。


背景技术:

2.目前,在面对海量的股票预警需求时,单机器的性能不足以满足海量的数据处理需求,因此需要采用多台机器对海量的股票预警数据分别进行数据处理,当集群的运行压力较大时,需要及时增加机器进行扩容来满足股票预警需求的增长,由于新增机器的初始状态为空,需要快速地通过集群状态参与数据运行。
3.现有的集群运行状态以状态变更记录的形式存在,便于集群内的机器能及时同步至最新的状态,但是当集群运行一定时间后,对应的状态变更数据往往会远大于实际状态数据,从而需要定期对状态变更数据处理成状态快照进行镜像备份,并在新加入的机器启动时拉取最新一次的状态快照数据,来获取对应状态快照的状态变更数据,但是,在定期快照处理期间,若新增加的状态变更记录较多,则状态变更记录的快照处理的系统开销也会随着增加,且集群数据堆积容易造成系统负载较高,造成新加入集群的机器状态变更缓慢。
4.针对上述中的相关技术,发明人认为存在有新加入集群的机器状态同步效率缓慢的缺陷。


技术实现要素:

5.为了提高集群数据处理的状态同步效率,本技术提供一种基于分布式协议的集群状态同步处理方法、系统、计算机设备及存储介质。
6.本技术的上述发明目的一是通过以下技术方案得以实现的:一种基于分布式协议的集群状态同步处理方法,应用于计算机集群,所述计算机集群包括唯一主节点及多个与所述唯一主节点链接的从节点,所述方法包括:实时获取唯一主节点的状态变更信息;将所述状态变更信息同步推送至所有所述从节点,并接收每个所述从节点反馈的接收确认信号;当所述唯一主节点接收到超过预设数量阈值的接收确认信号时,将所述状态变更信息的数据同步状态进行实时更新处理,得到状态变更确认数据;将所述状态变更确认数据提交至所述唯一主节点的状态变更队列中进行叠加排序处理,得到与实际状态变动顺序相同步的状态变更同步数据。
7.通过采用上述技术方案,由于新增加的集群机器在接入系统时,需要进行数据状态同步,当状态变更记录较多时,集群将变动记录数据进行定期快照处理容易增加系统开销,造成系统数据传输的负载较高,数据堆积容易影响系统数据传输的效率,因此,通过分布式协议将数据状态同步进行分布式管理,并设置用于产生状态变更记录的唯一主节点,设置多个用于接收主节点推送的状态变更记录的从节点,从而实现数据状态的同步处理,
并根据唯一主节点和若干个从节点之间的关联关系,将状态变更信息同步推送至所有从节点中,并接收所有从节点反馈的接收确认信号,用于判断信息是否推送成功,并在信息接收确认信息的接收数量超过预设阈值时,将唯一主节点中的状态变更信息的数据同步状态进行实时更新,使数据同步状态与当前的数据推送进度保持同步,并通过对唯一主节点的状态变更队列进行叠加排序更新,使唯一主节点的状态变更同步数据与实际状态变动顺序保持同步,从而提高集群数据处理的状态同步效率。
8.本技术在一较佳示例中可以进一步配置为:在所述将所述状态变更确认数据提交至所述唯一主节点的状态变更队列中进行叠加排序处理,得到与实际状态变动顺序相同步的状态变更同步数据之后,所述方法还包括:对所述状态变更队列进行状态快照处理,得到与所述状态变更同步数据相同步的状态快照数据;当所述唯一主节点接入新增从节点时,获取所述新增从节点的接入时间;将所述状态快照数据中在所述接入时间及在所述接入时间之后的增量状态快照数据同步推送至所述新增从节点;将所述增量状态快照数据进行数据分段处理,将拆分后得到的增量状态快照数据段分别进行数据封装处理,得到唯一数据拆分结构组成的状态变更分段数据。
9.通过采用上述技术方案,通过对状态变更队列变动情况的监听,对变动的状态数据进行状态快照处理,使唯一主节点的状态快照数据与状态变更同步数据保持数据同步,提高状态快照的数据更新实时性,并在唯一主节点接入新增从节点时,获取新增从节点的接入时间来对状态数据进行定向更新,将大于或等于接入时间即从接入时间起的增量状态变更数据进行同步推送,通过独立对引起数据堆积的增量状态变更数据的分段处理,减少对整个状态数据队列的整体数据处理工作量,并根据预设的数据拆分规则,对增量状态变更数据进行数据分段处理,将拆分后的增量状态变更数据段分别进行数据封装,通过数据分段并独立进行数据封装的方式,提高数据传输便捷性,并降低数据压缩率,从而得到携带有唯一状态标签、数据拆分起始键值和数据拆分结束键值的状态变更分段数据,有助于通过唯一状态标签对状态数据进行唯一识别,并通过数据拆分起始键值和数据拆分结束键值便于多个状态数据的重新链接。
10.本技术在一较佳示例中可以进一步配置为:在将所述增量状态快照数据进行数据分段处理,将拆分后得到的增量状态快照数据段分别进行数据封装处理,得到唯一数据拆分结构组成的状态变更分段数据之后,所述方法还包括:对所述状态变更分段数据进行并行执行任务分配处理,得到用于控制所述状态变更分段数据的执行线程同步的同步任务执行信号;当每个所述从节点接收到所述同步任务执行信号时,根据所述状态变更分段数据获取所述唯一主节点的主状态快照数据;将每个所述从节点的原始变更队列中与所述主状态快照数据相同的重复变更记录进行数据更新处理。
11.通过采用上述技术方案,通过将唯一主节点的增量状态变更数据进行并行执行任务分配处理,使多个从节点数据同步线程的执行线程保持同步执行,从而得到唯一主节点与每个从节点之间的状态快照段同步任务,有助于在多个从节点同步线程中通过状态快照
进行数据同步,提高多个从节点的数据同步速率,并在从节点接收到同步任务执行信号时,能够通过增量状态变更数据段中进行唯一状态标签识别,从而得到与从节点的接入时间相对应的主状态快照数据,提高数据传输精确性,并将从节点的节点原始变更队列中与主状态快照数据相同的重复变更记录进行数据移除,同一唯一状态标签下仅保留最新的状态变更数据,从而得到每个从节点的唯一变更记录的同步状态变更队列数据,有助于减少数据重复存储对从节点内存的无效占用,提高从节点内存资源的利用率。
12.本技术在一较佳示例中可以进一步配置为:在将每个所述从节点的原始变更队列中与所述主状态快照数据相同的重复变更记录进行数据更新处理之后,所述方法还包括:获取每个所述同步任务执行信号所对应的任务执行进度数据;当所有的所述任务执行进度数据都处于完成状态时,将每个所述从节点更新后的原始变更队列进行增量快照处理,得到与所述增量状态变更数据相同步的从节点增量快照数据;根据所述从节点增量快照数据,对每个所述从节点的历史状态快照数据进行同步数据更新处理,得到每个所述从节点的完整状态快照数据;根据所述完整状态快照数据,对每个所述从节点的从节点状态与所述唯一主节点的当前主节点状态进行同步变更处理。
13.通过采用上述技术方案,通过每个状态快照段同步任务的任务执行进度数据,来对每个从节点的数据同步进度进行实时监控,并在所有的任务执行进度数据都处于完成状态时,即唯一主节点的状态变更数据均同步传输至对应的从节点中,则将从节点中的同步状态变更队列数据进行增量快照处理,即对从节点中同步的状态变更数据进行同步的快照处理,使从节点的增量状态变更数据与从节点的快照数据保持同步,提高快照数据与从节点接收到的唯一主节点推送数据的数据一致性,并根据从节点增量快照数据对从节点的历史状态快照数据同步进行数据更新处理,使从节点的完整状态快照数据保持数据一致,并对完整状态快照数据中重复的状态快照数据进行数据更新处理,同一唯一状态标签下只保留一组状态变更数据,进而对从节点的节点状态与唯一主节点的当前节点状态进行同步变更更新处理,保持唯一主节点与多个从节点之间的节点状态、状态变更数据的同步。
14.本技术在一较佳示例中可以进一步配置为:在所述实时获取唯一主节点的状态变更信息之前,所述方法还包括:获取唯一主节点的状态元信息,其中,所述状态元信息包括状态内存数据和唯一状态标签;当所述唯一主节点接收到状态变更申请时,根据所述唯一状态标签对所述状态元信息是否注册进行判断,得到注册判断结果;当所述注册判断结果为成功注册时,则将所述状态元信息同步更新至所述唯一主节点的状态变更队列中。
15.通过采用上述技术方案,通过唯一主节点包含有状态内存数据和唯一状态标签的状态元信息,通过状态内存数据有助于对唯一主节点的当前存储情况进行及时监控,当唯一主节点接收到状态变更申请时,根据状态元信息中携带的唯一状态标签对状态元信息进行注册判断,从而有助于根据注册判断结果来评估状态元信息是否存在于唯一主节点中,提高对唯一主节点的状态内存数据的查找便捷性,在注册判断结果为成功注册时,则说明
唯一主节点中存在对应的状态元信息,将状态元信息更新至唯一主节点预设的状态变更队列中,从而得到与唯一主节点的当前状态变更情况相一致的状态变更队列,提高唯一主节点的状态变更数据与实际状态变更情况的同步性。
16.本技术在一较佳示例中可以进一步配置为:在当所述唯一主节点接收到状态变更申请时,根据所述唯一状态标签对所述状态元信息是否注册进行判断,得到注册判断结果之后,所述方法还包括:当所述注册判断结果为未注册时,查找已加载的状态内存数据中是否存在所述状态元信息的唯一状态标签;若存在,则将所述唯一状态标签相对应的状态内存数据进行状态元信息注册处理,生成与所述唯一主节点状态同步的状态变更数据。
17.通过采用上述技术方案,当注册判断结果为未注册时,则在已加载的状态内存数据中查找状态元信息的唯一状态标签,提高数据全局查找的速率,当唯一状态标签存在时,则说明唯一主节点中存在相应的状态内存数据,则将未注册成功的状态元信息进行重新注册处理,按照预设的状态元信息结构组成框架,将唯一状态标签对应的状态内存数据进行注册处理,得到与唯一主节点的当前状态保持同步的状态变更数据,从而提高唯一主节点的状态变更记录与唯一主节点的当前状态的状态同步性。
18.本技术在一较佳示例中可以进一步配置为:在将所述状态变更信息同步推送至所有所述从节点,并接收每个所述从节点反馈的接收确认信号之后,且在当所述唯一主节点接收到超过预设数量阈值的接收确认信号时,将所述状态变更信息的数据同步状态进行实时更新处理,得到状态变更确认数据之前,所述方法还包括:获取所述唯一主节点与每个所述从节点之间的数据传输通道的数据传输负载值;根据所述数据传输负载值,判断每个所述数据传输通道的数据堆积是否达到预设堵塞阈值;若是,则计算对应的从节点的状态变更等待时间,并根据所述数据堆积计算状态变更所需要的带宽传输资源值;根据所述状态变更等待时间和所述带宽传输资源值,为所述唯一主节点增加用于分担状态同步传输压力的补充从节点。
19.通过采用上述技术方案,通过唯一主节点与每个从节点之间的数据传输通道的数据传输负载值,有助于对每个数据传输通道进行数据传输动态监控,并根据数据传输负载值来对每个数据传输通道的数据堆积进行堵塞判断,当数据传输通道的数据堆积达到预设堵塞阈值时,则计算对应的堵塞从节点的状态变更等待时间,有助于根据状态变更等待时间来评估当前数据传输性能,并根据数据堆积情况来计算状态变更所需要的带宽传输资源值,有助于根据实际需要的带宽传输资源值来调整当前分布式数据架构中的带宽资源,进一步地,根据状态变更等待时间和带宽传输资源值,对唯一主节点的从节点数量进行优化,使每个从节点的数据传输通道的数据堆积情况保持在预设堵塞阈值的范围内,降低状态变更等待时长,通过对多个从节点的节点优化来分担唯一主节点的状态同步传输压力,从而提高唯一主节点与多个从节点之前的数据传输速率。
20.本技术的上述发明目的二是通过以下技术方案得以实现的:一种基于分布式协议的集群状态同步系统,应用于计算机集群,所述计算机集群
包括唯一主节点及多个与所述唯一主节点链接的从节点,所述系统包括:数据获取模块,用于实时获取唯一主节点的状态变更信息;数据推动模块,用于将所述状态变更信息同步推送至所有所述从节点,并接收每个所述从节点反馈的接收确认信号;数据更新模块,用于当所述唯一主节点接收到超过预设数量阈值的接收确认信号时,将所述状态变更信息的数据同步状态进行实时更新处理,得到状态变更确认数据;数据同步模块,用于将所述状态变更确认数据提交至所述唯一主节点的状态变更队列中进行叠加排序处理,得到与实际状态变动顺序相同步的状态变更同步数据。
21.通过采用上述技术方案,由于新增加的集群机器在接入系统时,需要进行数据状态同步,当状态变更记录较多时,集群将变动记录数据进行定期快照处理容易增加系统开销,造成系统数据传输的负载较高,数据堆积容易影响系统数据传输的效率,因此,通过分布式协议将数据状态同步进行分布式管理,并设置用于产生状态变更记录的唯一主节点,设置多个用于接收主节点推送的状态变更记录的从节点,从而实现数据状态的同步处理,并根据唯一主节点和若干个从节点之间的关联关系,将状态变更信息同步推送至所有从节点中,并接收所有从节点反馈的接收确认信号,用于判断信息是否推送成功,并在信息接收确认信息的接收数量超过预设阈值时,将唯一主节点中的状态变更信息的数据同步状态进行实时更新,使数据同步状态与当前的数据推送进度保持同步,并通过对唯一主节点的状态变更队列进行叠加排序更新,使唯一主节点的状态变更同步数据与实际状态变动顺序保持同步,从而提高集群数据处理的状态同步效率。
22.本技术的上述目的三是通过以下技术方案得以实现的:一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述基于分布式协议的状态同步方法的步骤。
23.本技术的上述目的四是通过以下技术方案得以实现的:一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述基于分布式协议的状态同步方法的步骤。
24.综上所述,本技术包括以下至少一种有益技术效果:1、通过分布式协议将数据状态同步进行分布式管理,并设置用于产生状态变更记录的唯一主节点,设置多个用于接收主节点推送的状态变更记录的从节点,从而实现数据状态的同步处理,并根据唯一主节点和若干个从节点之间的关联关系,将状态变更信息同步推送至所有从节点中,并接收所有从节点反馈的接收确认信号,用于判断信息是否推送成功,并在信息接收确认信息的接收数量超过预设阈值时,将唯一主节点中的状态变更信息的数据同步状态进行实时更新,使数据同步状态与当前的数据推送进度保持同步,并通过对唯一主节点的状态变更队列进行叠加排序更新,使唯一主节点的状态变更同步数据与实际状态变动顺序保持同步,从而提高集群数据处理的状态同步效率;2、通过对状态变更队列变动情况的监听,对变动的状态数据进行状态快照处理,使唯一主节点的状态快照数据与状态变更同步数据保持同步,提高状态快照的数据更新实时性,并在唯一主节点接入新增从节点时,获取新增从节点的接入时间来对状态数据进行定向更新,将大于或等于接入时间即从接入时间起的增量状态变更数据进行同步推送,通
过独立对引起数据堆积的增量状态变更数据的分段处理,减少对整个状态数据队列的整体数据处理工作量,并根据预设的数据拆分规则,对增量状态变更数据进行数据分段处理,将拆分后的增量状态变更数据段分别进行数据封装,通过数据分段并独立进行数据封装的方式,提高数据传输便捷性,并降低数据压缩率,从而得到携带有唯一状态标签、数据拆分起始键值和数据拆分结束键值的状态变更分段数据,有助于通过唯一状态标签对状态数据进行唯一识别,并通过数据拆分起始键值和数据拆分结束键值便于多个状态数据的重新链接;3、通过将唯一主节点的增量状态变更数据进行并行执行任务分配处理,使多个从节点数据同步线程的执行线程保持同步执行,从而得到唯一主节点与每个从节点之间的状态快照段同步任务,有助于在多个从节点同步线程中通过状态快照进行数据同步,提高多个从节点的数据同步速率,并在从节点接收到同步任务执行信号时,能够通过增量状态变更数据段中进行唯一状态标签识别,从而得到与从节点的接入时间相对应的主状态快照数据,提高数据传输精确性,并将从节点的节点原始变更队列中与主状态快照数据相同的重复变更记录进行数据移除,同一唯一状态标签下仅保留最新的状态变更数据,从而得到每个从节点的唯一变更记录的同步状态变更队列数据,有助于减少数据重复存储对从节点内存的无效占用,提高从节点内存资源的利用率。
附图说明
25.图1是本技术一实施例一种基于分布式协议的集群状态同步处理方法的实现流程图。
26.图2是本技术一实施例状态同步处理方法步骤s10的实现流程图。
27.图3是本技术一实施例状态同步处理方法步骤s20的实现流程图。
28.图4是本技术一实施例状态同步处理方法步骤s40的实现流程图。
29.图5是本技术一实施例状态同步处理方法步骤s404的实现流程图。
30.图6是本技术一实施例状态同步处理方法步骤s407的实现流程图。
31.图7是本技术一实施例一种基于分布式协议的状态同步处理系统的结构框图。
32.图8是用于实现基于分布式协议的集群状态同步处理方法的计算机设备的内部结构示意图。
具体实施方式
33.以下结合附图对本技术作进一步详细说明。
34.本实施例中是通过设置有唯一主节点和多个从节点的分布式集群对系统状态快照数据进行同步,其中,仅由集群唯一主节点产生状态变更数据,唯一主节点提交本地变更记录后推送状态变更记录至从节点,执行主体为计算机集群。
35.在一实施例中,如图1所示,本技术公开了一种基于分布式协议的集群状态同步处理方法,应用于计算机集群,计算机集群包括唯一主节点及多个与唯一主节点链接的从节点,具体包括如下步骤:s10:实时获取唯一主节点的状态变更信息。
36.具体的,当唯一主节点产生状态变更时,根据状态变更后的数据同步推送请求,来
获取唯一主节点的状态变更信息,如根据状态变更时的唯一状态标签来生成数据查找指令,根据数据查找指令在唯一主节点的状态变更队列中查找对应的状态变更信息。
37.需要说明的是,也可以在状态变更信息一定存储量时进行周期性的信息获取,不局限于本实施例中的实时获取一种信息获取方式。
38.在一实施例中,为了对唯一主节点中的状态元信息的注册情况进行准确评估,在实时获取唯一主节点的状态变更信息之前,如图2所示,还包括:s101:获取唯一主节点的状态元信息,其中,状态元信息包括状态内存数据和唯一状态标签。
39.具体的,通过唯一状态标签对唯一主节点的内存数据进行查找,得到状态内存数据,并根据预设的状态元信息结构框架,对唯一主节点中符合预设状态元信息结构的状态元信息数据进行信息提取,得到状态元信息结构组成数据,从而得到唯一主节点的状态元信息。
40.s102:当唯一主节点接收到状态变更申请时,根据唯一状态标签对状态元信息是否注册进行判断,得到注册判断结果。
41.具体的,当唯一主节点接收到状态变更申请时,根据状态变更申请来查找对应的唯一状态标签,唯一状态标签对状态元信息是否在唯一主节点中进行注册进行判断,如若唯一主节点中存在对应的唯一状态标签,则说明唯一主节点中存在对应的状态变更注册信息,若唯一主节点中不存在对应的唯一状态标签,则说明唯一主节点中未存在有对应的状态变更注册信息,则根据注册判断结果来评估状态元信息是否存在于唯一主节点中。
42.s103:当注册判断结果为成功注册时,则将状态元信息同步更新至唯一主节点的状态变更队列中。
43.具体的,当注册判断结果为成功注册时,则说明唯一主节点中存在相应的状态变更注册信息,则将注册状态变更申请所对应的状态元信息更新至唯一主节点预设的状态变更队列中,如根据状态元信息的唯一状态标签,对状态变更队列进行顺序编号,得到按照唯一状态标签进行连续递增编号的状态变更队列。
44.在一实施例中,为了提高状态元信息的注册判断完整性,且对未注册的状态元信息进行有序的信息注册处理,在当唯一主节点接收到状态变更申请时,根据唯一状态标签对状态元信息是否注册进行判断,得到注册判断结果之后,如图2所示,还包括:s104:当注册判断结果为未注册时,查找已加载的状态内存数据中是否存在状态元信息的唯一状态标签。
45.具体的,当注册判断结果为未注册时,则说明唯一主节点中不存在相应的状态变更注册信息,则在唯一主节点已加载的状态内存数据中进行数据查找,根据未注册的状态元信息的唯一状态标签,与状态内存数据进行状态标签比对,提高对状态内存数据的查找便利性,根据比对结果来判断唯一主节点已存储的状态内存数据中是否有相应的状态变更数据。
46.s105:若存在,则将唯一状态标签相对应的状态内存数据进行状态元信息注册处理,生成与唯一主节点状态同步的状态变更数据。
47.具体的,当唯一主节点的状态内存数据中存在对应的唯一状态标签时,按照预设的状态元信息结构组成框架,如唯一状态标签、数据拆分起始键值和数据拆分结束键值,从
而组成唯一的且符合状态内存数据预设的数据格式的状态元信息结构组成框架,对唯一状态标签相对应的状态内存数据进行状态元信息注册处理,按照状态元信息结构组成规则对状态内存数据进行数据组成结构重组处理,得到与状态变更队列的数据结构组成相同步的状态变更数据。
48.s20:将状态变更信息同步推送至所有从节点,并接收每个从节点反馈的接收确认信号。
49.具体的,根据唯一主节点和所有从节点之间预先构建的数据传输通道,如将每个从节点的节点id发送至唯一主节点进行链接,并根据接入时间对每个从节点进行数据推送权限分配,根据节点id和数据推送权限来来构建唯一主节点与每个从节点之间的独立数据传输通道,并根据接入时间和从节点的节点id,将状态变更信息同步推送至所有从节点,通过预设的监听机制,如心跳包,监听每个从节点发送至唯一主节点的接收确认信号,其中,接收确认信号为从节点成功接收到无损伤的状态变更信息,并根据接收状态以及接收数据完整度情况生成的接收确认信号。
50.在一实施例中,为了更有效地调动从节点资源来降低数据传输通道拥塞带来的数据堆积,在将状态变更信息同步推送至所有从节点,并接收每个从节点反馈的接收确认信号之后,且在当唯一主节点接收到超过预设数量阈值的接收确认信号时,将状态变更信息的数据同步状态进行实时更新处理,得到状态变更确认数据之前,如图3所示,还包括:s201:获取唯一主节点与每个从节点之间的数据传输通道的数据传输负载值。
51.具体的,计算唯一主节点的待传输数据总容量与每个从节点已接收到的数据接收总容量之间的容量差值,将数据传输的容量差值作为每个数据传输通道的数据传输负载值。
52.s202:根据数据传输负载值,判断每个数据传输通道的数据堆积是否达到预设堵塞阈值。
53.具体的,根据数据传输负载值,判断每个数据传输通道的数据堆积是否达到预设堵塞阈值,如当数据传输负载值达到预设堵塞阈值时,则判断数据传输通道产生数据堆积现象,影响唯一主节点的数据同步推送速率,当数据传输负载值低于预设堵塞阈值时,则说明数据传输通道处于正常传输工况,数据同步推送速率满足唯一主节点与从节点之间的数据传输需求。
54.s203:若是,则计算对应的从节点的状态变更等待时间,并根据数据堆积计算状态变更所需要的带宽传输资源值。
55.具体的,当数据传输通道的数据堆积达到预设堵塞阈值时,则计算从节点的状态变更等待时间,如获取唯一主节点推送的每个状态变更数据的单数据接收时间,根据相邻的单数据接收时间之间的差值来计算从节点的状态变更等待时间,根据唯一主节点的待推送数据总容量与从节点的数据接收总容量之间的容量差来计算数据堆积情况,并将容量差值来作为状态变更所需要的带宽传输资源值。
56.s204:根据状态变更等待时间和带宽传输资源值,为唯一主节点增加用于分担状态同步传输压力的补充从节点。
57.具体的,根据状态变更等待时间和带宽传输资源值,对唯一主节点的从节点数量进行优化处理,如在状态变更等待时间超过预设等待阈值时,根据带宽传输资源值来查找
空闲状态或者新增一个满足带宽传输资源值的从节点,对数据堆积状态下的状态变更数据进行数据分担,通过对从节点的数量优化来分担唯一主节点的状态同步传输压力,从而减少唯一主节点进行数据同步推送时的数据堆积概率。
58.s30:当唯一主节点接收到超过预设数量阈值的接收确认信号时,将状态变更信息的数据同步状态进行实时更新处理,得到状态变更确认数据。
59.具体的,唯一主节点在向所有从节点进行数据同步推送后,当接收到接收确认信号时开始进行接收确认信号统计,当唯一主节点接收到超过预设数量阈值的接收确认信号时,如预设阈值设置为所有从节点数量的一半,即唯一主节点接收到超过一半从节点总量以上的从节点所反馈的接收确认信号时,将唯一主节点的状态变更信息的数据同步状态进行实时更新,如将在唯一主节点进行数据同步推送时,将状态变更信息的数据同步状态标记为“提交”状态,在唯一主节点接收到超过预设阈值的接收确认信号时,将状态变更信息的数据同步状态标记为“确认”状态,从而得到完成数据同步推送后的状态变更确认数据。
60.s40:将状态变更确认数据提交至唯一主节点的状态变更队列中进行叠加排序处理,得到与实际状态变动顺序相同步的状态变更同步数据。
61.具体的,将完成数据同步推送或者标记为“确认”状态下的状态变更确认数据提交至状态变更队列中,根据状态变更确认数据的确认时间和数据唯一的变更状态标签,生成唯一的状态变更记录序号,根据每个状态变更记录序号在状态变更队列中进行顺序的数据更新,从而得到与实际状态变动顺序相同步的状态变更同步数据。
62.在一实施例中,为了减少新增从节点接入分布式集群后对原数据传输顺序造成的误差干扰,提高新增从节点的数据传输有序性,在将状态变更确认数据提交至唯一主节点的状态变更队列中进行叠加排序处理,得到与实际状态变动顺序相同步的状态变更同步数据之后,如图4所示,还包括:s401:对状态变更队列进行状态快照处理,得到与状态变更同步数据相同步的状态快照数据。
63.具体的,当状态变更队列发生变动时,生成控制状态快照处理启动的快照指令,对状态变更队列进行状态快照处理,将状态变更队列按照连续递增的顺序编号,映射至全局一致的数据镜像中,从而得到状态快照数据,通过与状态变更同步数据相同步的状态快照数据,减少唯一主节点的数据压缩占比,提高唯一主节点的空间利用率。
64.s402:当唯一主节点接入新增从节点时,获取新增从节点的接入时间。
65.具体的,当唯一主节点接入新增从节点时,根据新增从节点的节点id对新增从节点进行节点注册,当新增从节点在唯一主节点中注册成功时,获取新增从节点接入唯一主节点的接入时间。
66.s403:将状态快照数据中在接入时间及在接入时间之后的增量状态快照数据同步推送至新增从节点。
67.具体的,根据新增从节点的接入时间,在状态快照数据中查找大于或等于接入时间的增量状态快照数据,将查找到的状态快照数据标记为状态快照数据,并通过预设的数据传输通道,将状态快照数据推送至新增从节点中。
68.s404:将增量状态快照数据进行数据分段处理,将拆分后得到的增量状态快照数据段分别进行数据封装处理,得到唯一数据拆分结构组成的状态变更分段数据。
69.具体的,根据预设的数据组成架构,对增量状态快照数据进行数据分段处理,如以增量状态快照数据中的唯一变更标签为标识,将每个增量状态快照数据的数据起始段和数据结束段分别进行相应的主键设定,从而得到拆分后的增量状态快照数据段,并根据预设的数据封装规则,对每个增量状态快照数据段分别进行数据封装处理,得到更加便于进行数据传输的状态变更分段数据,其中,每个状态变更分段数据携带有唯一状态标签、数据拆分起始键值和数据拆分结束键值。
70.在一实施例中,在加入新增从属节点后,为了更有序地对所有从节点进行并发线程同步执行处理,在将增量状态快照数据进行数据分段处理,将拆分后得到的增量状态快照数据段分别进行数据封装处理,得到唯一数据拆分结构组成的状态变更分段数据之后之后,如图5所示,还包括:s405:对状态变更分段数据进行并行执行任务分配处理,得到用于控制状态变更分段数据的执行线程同步的同步任务执行信号。
71.具体的,分别对每个增量状态变更数据进行并行执行任务分配处理,根据每个增量状态变更数据的传输带宽需求、数据封装完成时间以及唯一主节点与从节点之间的数据传输通道空闲程度,来对每个增量状态变更数据进行执行任务分配处理,使与唯一主节点相链接的所有从节点的数据同步推送线程保持同步,从而得到唯一主节点的状态快照段同步任务。
72.s406:当每个从节点接收到同步任务执行信号时,根据状态变更分段数据获取唯一主节点的主状态快照数据。
73.具体的,当每个从节点从数据传输通道接收到唯一主节点推送过来的同步任务执行信号时,对同步任务执行信号进行数据解析,并从接收到的状态变更分段数据中查找唯一主节点的主状态快照数据,并根据查找结果,将唯一主节点的主状态快照数据映射至从节点中,使每个从节点都能同步接收到对应的主状态快照数据。
74.s407:将每个从节点的原始变更队列中与主状态快照数据相同的重复变更记录进行数据更新处理。
75.具体的,根据主状态快照数据,在从节点原始变更队列中查找与主状态快照数据相同的重复变更记录,如根据主状态快照数据中的唯一状态标签进行数据查找,并根据查找结果对从节点原始变更队列中的重复变更记录进行数据移除,从而使从节点原始变更队列中每个唯一状态标签下只保留唯一的变更状态数据,从而得到从节点的唯一变更记录的同步状态变更队列数据。
76.在一实施例中,为了提高从节点的快照数据与从节点的状态变更进度保持同步,在将每个从节点的原始变更队列中与主状态快照数据相同的重复变更记录进行数据更新处理之后,如图6所示,还包括:s501:获取每个同步任务执行信号所对应的任务执行进度数据。
77.具体的,根据唯一主节点与每个从节点之间的数据传输通道中的数据传输进度,包括唯一主节点的待推送数据总容量和待推送数据剩余容量并结合从节点已接收数据容量,来综合计算状态快照段同步任务的任务执行进度,如当从节点已接收数据容量与待推送数据总容量相同时,则说明任务执行进度已完成,当从节点已接收数据容量小于待推送数据总容量时,则说明任务执行进度处于进行当中,任务执行进度数据与待推送数据剩余
容量保持一致。
78.s502:当所有的任务执行进度数据都处于完成状态时,将每个从节点更新后的原始变更队列进行增量快照处理,得到与增量状态变更数据相同步的从节点增量快照数据。
79.具体的,当所有任务执行进度数据都处于完成状态时,即唯一主节点将待推送的状态变更数据全部推送至所有从节点中时,将从节点的同步状态变更队列数据进行增量快照处理,如按照状态变更数据的唯一状态标签以及对应的接收时间,按顺序对同步状态变更队列中的数据进行快照映射处理,从而得到与增量状态变更数据相同步的从节点增量快照数据。
80.s503:根据从节点增量快照数据,对每个从节点的历史状态快照数据进行同步数据更新处理,得到每个从节点的完整状态快照数据。
81.具体的,根据从节点增量快照数据,对从节点的历史状态快照数据进行同步数据更新处理,如根据从节点增量快照数据的唯一状态标签,在历史状态快照数据中查找与节点增量快照数据的唯一变更状态相匹配的状态快照数据,从而将从节点增量快照数据对历史状态快照数据进行数据覆盖处理,将历史状态快照数据移除,同一唯一状态标签下只保留一组最新的状态变更数据,从而得到完整状态快照数据。
82.s504:根据完整状态快照数据,对每个从节点的从节点状态与唯一主节点的当前主节点状态进行同步变更处理。
83.具体的,根据完整状态快照数据,对从节点的节点状态与唯一主节点的当前节点状态进行同步变更,如根据唯一主节点的当前节点状态对从节点的节点状态进行更新,使从节点的节点状态与唯一主节点的当前节点状态保持同步,同理,对每个从节点的节点状态都进行变更,从而得到状态变更同步的唯一主节点和多个从节点。
84.应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本技术实施例的实施过程构成任何限定。
85.在一实施例中,提供一种基于分布式协议的集群状态同步系统,应用于计算机集群,计算机集群包括唯一主节点及多个与唯一主节点链接的从节点,该基于分布式协议的集群状态同步系统与上述实施例中基于分布式协议的状态同步方法一一对应。如图7所示,该基于分布式协议的集群状态同步系统包括数据获取模块、数据推动模块、数据更新模块和数据同步模块。各功能模块详细说明如下:数据获取模块,用于实时获取唯一主节点的状态变更信息。
86.数据推动模块,用于将状态变更信息同步推送至所有从节点,并接收每个从节点反馈的接收确认信号。
87.数据更新模块,用于当唯一主节点接收到超过预设数量阈值的接收确认信号时,将状态变更信息的数据同步状态进行实时更新处理,得到状态变更确认数据。
88.数据同步模块,用于将状态变更确认数据提交至唯一主节点的状态变更队列中进行叠加排序处理,得到与实际状态变动顺序相同步的状态变更同步数据。
89.优选的,在将状态变更确认数据提交至唯一主节点的状态变更队列中进行叠加排序处理,得到与实际状态变动顺序相同步的状态变更同步数据之后,还包括:状态快照处理模块,用于对状态变更队列进行状态快照处理,得到与状态变更同
步数据相同步的状态快照数据。
90.接入时间获取模块,用于当唯一主节点接入新增从节点时,获取新增从节点的接入时间。
91.增量数据推送模块,用于将状态快照数据中在接入时间及在接入时间之后的增量状态快照数据同步推送至新增从节点。
92.数据分段处理模块,用于将增量状态快照数据进行数据分段处理,将拆分后得到的增量状态快照数据段分别进行数据封装处理,得到唯一数据拆分结构组成的状态变更分段数据。
93.优选的,在将增量状态快照数据进行数据分段处理,将拆分后得到的增量状态快照数据段分别进行数据封装处理,得到唯一数据拆分结构组成的状态变更分段数据之后,还包括:线程同步模块,用于将状态变更分段数据进行并行执行任务分配处理,得到用于控制状态变更分段数据的执行线程同步的同步任务执行信号。
94.主快照数据获取模块,用于当每个从节点接收到同步任务执行信号时,根据状态变更分段数据获取唯一主节点的主状态快照数据。
95.数据移除模块,用于将每个从节点的原始变更队列中与主状态快照数据相同的重复变更记录进行数据更新处理。
96.优选的,在将每个从节点的原始变更队列中与主状态快照数据相同的重复变更记录进行数据更新处理之后,还包括:进度数据获取模块,用于获取每个同步任务执行信号所对应的任务执行进度数据。
97.增量快照处理模块,用于当所有的任务执行进度数据都处于完成状态时,将每个从节点更新后的原始变更队列进行增量快照处理,得到与增量状态变更数据相同步的从节点增量快照数据。
98.状态快照更新模块,用于根据从节点增量快照数据,对每个从节点的历史状态快照数据进行同步数据更新处理,得到每个从节点的完整状态快照数据。
99.节点同步更新模块,用于根据完整状态快照数据,对每个从节点的从节点状态与唯一主节点的当前主节点状态进行同步变更处理。
100.优选的,在实时获取唯一主节点的状态变更信息之前,还包括:元信息获取模块,用于获取唯一主节点的状态元信息,其中,状态元信息包括状态内存数据和唯一状态标签。
101.注册判断模块,用于当唯一主节点接收到状态变更申请时,根据唯一状态标签对状态元信息是否注册进行判断,得到注册判断结果。
102.元信息更新模块,用于当注册判断结果为成功注册时,则将状态元信息同步更新至唯一主节点的状态变更队列中。
103.优选的,在当唯一主节点接收到状态变更申请时,根据唯一状态标签对状态元信息是否注册进行判断,得到注册判断结果之后,还包括:标签查找模块,用于当注册判断结果为未注册时,查找已加载的状态内存数据中是否存在状态元信息的唯一状态标签。
104.元信息注册模块,用于若存在,则将唯一状态标签相对应的状态内存数据进行状态元信息注册处理,生成与唯一主节点状态同步的状态变更数据。
105.优选的,在将状态变更信息同步推送至所有从节点,并接收每个从节点反馈的接收确认信号之后,且在当唯一主节点接收到超过预设数量阈值的接收确认信号时,将状态变更信息的数据同步状态进行实时更新处理,得到状态变更确认数据之前,还包括:负载数据获取模块,用于获取唯一主节点与每个从节点之间的数据传输通道的数据传输负载值。
106.数据堆积判断模块,用于根据数据传输负载值,判断每个数据传输通道的数据堆积是否达到预设堵塞阈值。
107.等待数据计算模块,用于若是,则计算对应的从节点的状态变更等待时间,并根据数据堆积计算状态变更所需要的带宽传输资源值。
108.节点数量优化模块,用于根据状态变更等待时间和带宽传输资源值,为唯一主节点增加用于分担状态同步传输压力的补充从节点。
109.关于基于分布式协议的集群状态同步系统的具体限定可以参见上文中对于基于分布式协议的状态同步方法的限定,在此不再赘述。上述基于分布式协议的集群状态同步系统中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
110.在一个实施例中,提供了一种计算机设备,该计算机设备可以是计算机集群,其内部结构图可以如图8所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储分布式唯一主节点和多个从节点的状态数据同步推送数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种基于分布式协议的状态同步方法。
111.在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现基于分布式协议的状态同步方法的步骤。
112.本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本技术所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink) dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。
113.所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功
能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。
114.以上所述实施例仅用以说明本技术的技术方案,而非对其限制;尽管参照前述实施例对本技术进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本技术各实施例技术方案的精神和范围,均应包含在本技术的保护范围之内。

技术特征:
1.一种基于分布式协议的集群状态同步处理方法,其特征在于,应用于计算机集群,所述计算机集群包括唯一主节点及多个与所述唯一主节点链接的从节点,所述方法包括:实时获取唯一主节点的状态变更信息;将所述状态变更信息同步推送至所有所述从节点,并接收每个所述从节点反馈的接收确认信号;当所述唯一主节点接收到超过预设数量阈值的接收确认信号时,将所述状态变更信息的数据同步状态进行实时更新处理,得到状态变更确认数据;将所述状态变更确认数据提交至所述唯一主节点的状态变更队列中进行叠加排序处理,得到与实际状态变动顺序相同步的状态变更同步数据。2.根据权利要求1所述的基于分布式协议的集群状态同步处理方法,其特征在于,在所述将所述状态变更确认数据提交至所述唯一主节点的状态变更队列中进行叠加排序处理,得到与实际状态变动顺序相同步的状态变更同步数据之后,所述方法还包括:对所述状态变更队列进行状态快照处理,得到与所述状态变更同步数据相同步的状态快照数据;当所述唯一主节点接入新增从节点时,获取所述新增从节点的接入时间;将所述状态快照数据中在所述接入时间及在所述接入时间之后的增量状态快照数据同步推送至所述新增从节点;将所述增量状态快照数据进行数据分段处理,将拆分后得到的增量状态快照数据段分别进行数据封装处理,得到唯一数据拆分结构组成的状态变更分段数据。3.根据权利要求2所述的基于分布式协议的集群状态同步处理方法,其特征在于,在将所述增量状态快照数据进行数据分段处理,将拆分后得到的增量状态快照数据段分别进行数据封装处理,得到唯一数据拆分结构组成的状态变更分段数据之后,所述方法还包括:对所述状态变更分段数据进行并行执行任务分配处理,得到用于控制所述状态变更分段数据的执行线程同步的同步任务执行信号;当每个所述从节点接收到所述同步任务执行信号时,根据所述状态变更分段数据获取所述唯一主节点的主状态快照数据;将每个所述从节点的原始变更队列中与所述主状态快照数据相同的重复变更记录进行数据更新处理。4.根据权利要求3所述的基于分布式协议的集群状态同步处理方法,其特征在于,在将每个所述从节点的原始变更队列中与所述主状态快照数据相同的重复变更记录进行数据更新处理之后,所述方法还包括:获取每个所述同步任务执行信号所对应的任务执行进度数据;当所有的所述任务执行进度数据都处于完成状态时,将每个所述从节点更新后的原始变更队列进行增量快照处理,得到与所述增量状态变更数据相同步的从节点增量快照数据;根据所述从节点增量快照数据,对每个所述从节点的历史状态快照数据进行同步数据更新处理,得到每个所述从节点的完整状态快照数据;根据所述完整状态快照数据,对每个所述从节点的从节点状态与所述唯一主节点的当前主节点状态进行同步变更处理。
5.根据权利要求1所述的基于分布式协议的集群状态同步处理方法,其特征在于,在所述实时获取唯一主节点的状态变更信息之前,所述方法还包括:获取唯一主节点的状态元信息,其中,所述状态元信息包括状态内存数据和唯一状态标签;当所述唯一主节点接收到状态变更申请时,根据所述唯一状态标签对所述状态元信息是否注册进行判断,得到注册判断结果;当所述注册判断结果为成功注册时,则将所述状态元信息同步更新至所述唯一主节点的状态变更队列中。6.根据权利要求5所述的基于分布式协议的集群状态同步处理方法,其特征在于,在当所述唯一主节点接收到状态变更申请时,根据所述唯一状态标签对所述状态元信息是否注册进行判断,得到注册判断结果之后,所述方法还包括:当所述注册判断结果为未注册时,查找已加载的状态内存数据中是否存在所述状态元信息的唯一状态标签;若存在,则将所述唯一状态标签相对应的状态内存数据进行状态元信息注册处理,生成与所述唯一主节点状态同步的状态变更数据。7.根据权利要求1所述的基于分布式协议的集群状态同步处理方法,其特征在于,在将所述状态变更信息同步推送至所有所述从节点,并接收每个所述从节点反馈的接收确认信号之后,且在当所述唯一主节点接收到超过预设数量阈值的接收确认信号时,将所述状态变更信息的数据同步状态进行实时更新处理,得到状态变更确认数据之前,所述方法还包括:获取所述唯一主节点与每个所述从节点之间的数据传输通道的数据传输负载值;根据所述数据传输负载值,判断每个所述数据传输通道的数据堆积是否达到预设堵塞阈值;若是,则计算对应的从节点的状态变更等待时间,并根据所述数据堆积计算状态变更所需要的带宽传输资源值;根据所述状态变更等待时间和所述带宽传输资源值,为所述唯一主节点增加用于分担状态同步传输压力的补充从节点。8.一种基于分布式协议的集群状态同步系统,其特征在于,应用于计算机集群,所述计算机集群包括唯一主节点及多个与所述唯一主节点链接的从节点,所述系统包括:数据获取模块,用于实时获取唯一主节点的状态变更信息;数据推动模块,用于将所述状态变更信息同步推送至所有所述从节点,并接收每个所述从节点反馈的接收确认信号;数据更新模块,用于当所述唯一主节点接收到超过预设数量阈值的接收确认信号时,将所述状态变更信息的数据同步状态进行实时更新处理,得到状态变更确认数据;数据同步模块,用于将所述状态变更确认数据提交至所述唯一主节点的状态变更队列中进行叠加排序处理,得到与实际状态变动顺序相同步的状态变更同步数据。9.一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至7任一项所述基于分布式协议的集群状态同步处理方法的步骤。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述基于分布式协议的集群状态同步处理方法的步骤。

技术总结
本申请涉及一种基于分布式协议的集群状态同步处理方法及其系统,应用于计算机集群,所述计算机集群包括唯一主节点及多个与所述唯一主节点链接的从节点,所述方法包括:实时获取唯一主节点的状态变更信息,将所述状态变更信息同步推送至所有所述从节点,并接收每个所述从节点反馈的接收确认信号,当所述唯一主节点接收到超过预设数量阈值的接收确认信号时,将所述状态变更信息的数据同步状态进行实时更新处理,得到状态变更确认数据,将所述状态变更确认数据提交至所述唯一主节点的状态变更队列中进行叠加排序处理,得到与实际状态变动顺序相同步的状态变更同步数据。本申请具有提高集群数据处理的状态同步效率的效果。有提高集群数据处理的状态同步效率的效果。有提高集群数据处理的状态同步效率的效果。


技术研发人员:曾赞达 李雄飞 罗文杰 柯年军 卢树文 周伟杰 谭彪荣
受保护的技术使用者:广州经传多赢投资咨询有限公司
技术研发日:2023.05.29
技术公布日:2023/8/23
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

飞机超市 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

相关推荐