掌桥专利:专业的专利平台
掌桥专利
首页

技术领域

本发明属于分布式计算技术领域,特别是一种轻量级分布式去中心化系统的选主方法及装置。

背景技术

现有的电磁信号通用分布式智能处理分析平台(例如专利CN113157252A),能够在分布式计算集群中实现分布式计算的功能。该分布式智能处理分析平台由一个调度节点、若干个常规计算节点、若干个高级计算节点、若干个数据接入节点等组成。其中每个节点上部署一个节点管理模块,用来监控硬件状态、软件运行状态、启动关闭软件模块等功能;调度节点部署调度模块,作为系统的中枢,负责调度和资源协调,计算节点用来适应并行处理任务。UI前端模块接收用户任务指令通过通信协议发送给后端服务模块,节点管理模块在资源监测与资源分配成功后,任务涉及模块(数据接入模块、预处理计算模块、深度学习计算模块)启动任务;各模块与数据管理模块交互实现数据存储与管理,任务结束后通过通信协议完成结果反馈;后端服务模块负责任务调度,节点管理模块负责资源回收,UI前端模块负责结果展示。

上述平台的软件框架中包含一个Nginx前端模块、一个调度模块、一个代理助理软件模块、一个数据管理模块、若干个数据接入模块、若干个常规计算软件模块、若干个高级计算软件模块;可运行在一台计算机上,也可按角色分别运行在多台计算机上,如:数据接入软件模块运行在采集服务器上,计算节点有两类,常规计算软件模块运行在常规计算节点,高级计算软件模块运行在高级计算节点。

在分布式计算、多任务并发场景下,将有多个客户端“同时”向调度软件发送任务申请,而且每个用户都可能申请多个任务;同时,每个任务会存在并行计算进程,甚至分布在不同计算节点上。这个问题的本质是调度模块要能够接多个任务申请,并能够根据当前计算资源状态(包括常规计算软件模块和高级计算软件模块),将任务合理的分配到相应的计算资源,同时对资源运行情况进行监控和管理。

专利CN113157252A中平台虽然可以依赖调度节点上的节点管理模块实现监测调度模块状态,调度模块异常关闭,将其自动拉起运行;但依然存在单点故障问题,即当调度服务器宕机后,整个系统瘫痪,无法正常运行。

发明内容

本发明的目的在于提供一种轻量级分布式去中心化系统的选主方法及装置,以解决单点故障问题,避免调度节点宕机影响整个系统正常运行,使系统可长期稳定运行。

实现本发明目的的技术解决方案为:一种轻量级分布式去中心化系统的选主方法,包括:

分布式系统的每个硬件节点上运行一个节点管理模块,通过配置文件配置硬件节点的角色;

将多个硬件节点同时配置为调度节点,调度节点有领导者、跟随者、候选者三个状态;

调度节点默认是候选者状态,通过选主方法确定活动调度节点,选主的原则是自荐制,谁先报名谁先获胜。

一种轻量级分布式去中心化系统的选主装置,包括多个节点管理模块,每个节点管理模块内设置有配置文件,其中:

各节点管理模块一一对应设置于分布式系统的各个硬件节点上,配置文件用于配置硬件节点的角色;

配置文件将多个硬件节点同时配置为调度节点,调度节点有领导者、跟随者、候选者三个状态,并且调度节点设有候选者状态转换单元、跟随者状态转换单元、领导者状态转换单元;

调度节点默认是候选者状态,通过选主方法确定活动调度节点,选主的原则是自荐制,谁先报名谁先获胜。

本发明与现有技术相比,其显著优点为:(1)依托节点上运行的节点管理模块和调度节点上的调度模块,实现自动选主功能,从而解决单点故障问题,避免调度节点宕机影响整个系统正常运行,使系统可长期稳定运行;(2)不依赖任何开源组件,自主可控,可运行在多种操作系统上;(3)系统中有一个调度节点正常运行即可满足系统运行要求,无半数以上正常运行的要求。

附图说明

图1是本发明背景技术中系统硬件组成图。

图2是本发明背景技术中系统软件架构图。

图3是轻量级分布式去中心化系统的调度节点状态切换图。

图4是候选者状态转换流程图。

图5是跟随者状态转换流程图。

图6是领导者状态转换流程图。

具体实施方式

本发明所述的一种轻量级分布式多任务资源管理与任务调度器所依赖硬件组成图如图1所示,所运行的分布式计算软件框架结构如图2所示。

本发明轻量级分布式去中心化系统的选主方法,依赖节点上运行的节点管理模块和调度节点上的调度模块。调度模块为程序主要运行的进程,节点管理模块在每个节点上运行一个。

注册发现的实现原理:每个硬件节点上运行一个节点管理模块,通过配置文件,配置硬件节点的角色,可配置多个硬件节点为调度节点。

作为调度节点,有领导者、跟随者、候选者三个状态:

领导者,用于发调度心跳,调度心跳即周期广播的心跳数据包,以保持领导者状态;

跟随者,用于接收调度心跳;

候选者,用于激活自荐流程,候选者有机会成为领导者。

调度节点默认是候选者状态,通过选主方法确定活动调度节点,选主的原则是自荐制,谁先报名谁先获胜。

最小系统资源:指系统要运行需要的各类节点最小集合;满足最小资源的判断准则为:各类节点最小集合是指调度节点、常规计算节点、高级计算节点、数据接入节点至少各一个,且满足最小系统的各个节点均能够互相ping通,即网络可达。

整个系统分为:候选者、跟随者、领导者三个角色,如图3所示。

系统启动,默认所有调度节点均是候选者;

候选者能够根据条件切换到跟随者或领导者,也能够保持候选者状态;

跟随者能够进一步成为领导者,也能够退化为候选者;

领导者根据条件退化成跟随者或候选者。

各个角色的具体状态转换流程如图4、图5、图6所示。

结合图4,候选者状态转换过程如下:

(1.1)激活自荐定时器;

(1.2)在自荐定时器超时T1时间前:

①若在调度心跳通道,收到其他节点发来的调度心跳信息,该信息包含调度的IP端口号、任期号自增,比较任期号是否大于本地,本地指本节点存储的任期号:

若是,则关闭自荐定时器,与调度节点建立连接,转换成跟随者;

若否,则判断自荐定时器是否超时T1时间,若未超时T1时间则返回步骤(1.2),若超时T1时间则进入步骤(1.3);

②若收到其他节点自荐信息,比较任期号是否大于本地:

若是,则判断在超时T2时间内是否收到该节点的调度心跳,该节点是指相对其他节点描述的当前节点,如果收到,则关闭定时器,与调度节点建立连接,转换成跟随者;如果没收到,则判断自荐定时器是否超时T1时间,若未超时T1时间则返回步骤(1.2),若超时T1时间则进入步骤(1.3);T1>T2,且T1、T2取值根据系统需求进行调整;

若否,则关闭自荐定时器,发送自荐信息,转为领导者;

③若在调度心跳通道,未收到其他节点发来的调度心跳信息,且未收到其他节点自荐信息,则进入步骤(1.3);

(1.3)在自荐定时器超时T1时间后:关闭自荐定时器,发送自荐信息,转为领导者。

结合图5,跟随者状态转换过程如下:

(2.1)本节点的节点管理模块启动状态定时器和监听定时器;

(2.2)判断本节点的节点管理模块在超时T4时间内是否收到调度心跳:

如果是,则进入步骤(2.3);

如果否,则关闭状态定时器、监听定时器,转为候选者,并结束转换过程;

(2.3)节点管理模块重置监听定时器,并对调度任期号和本地进行比较:

若调度任期号比本地大,则根据调度心跳重定向调度模块,与新调度模块建立连接,并进入步骤(2.4);

若调度任期号比本地小,则关闭状态定时器、监听定时器,转为候选者,并结束转换过程;

若调度任期号与本地相同,则进入步骤(2.4);

(2.4)判断状态定时器是否超时:

如果否,则重新进入步骤(2.4);

如果是,节点管理模块重置状态定时器,并获取本节点状态,向调度模块发送本节点状态信息。

结合图6,领导者状态转换过程如下:

(3.1)当收到本节点自荐信息,则本节点转为领导者,调度模快立即发送一次调度心跳;

(3.2)调度模快启动心跳定时器;

(3.3)判断心跳定时器是否达到定时时间T5,T5<T2,T5取值根据系统需求进行调整:

如果达到定时时间T5,则判断是否满足最小系统资源,若满足,则重置心跳定时器,并发送调度心跳,返回步骤(3.3)等待下次定时时间到达;若不满足,则关闭心跳定时器,并转为候选者,状态转换过程结束;

如果未达到定时时间T5,则:

①判断是否收到其他节点调度心跳:

若收到其他节点调度心跳,且调度心跳中的任期号大于本地,本节点调度模块关闭心跳定时器,转为跟随者,状态转换过程结束;

否则重新执行步骤(3.3);

②判断是否收到其他节点自荐信息:

若收到其他节点自荐信息,且自荐信息中的任期号大于本地,本节点调度模块关闭心跳定时器,转为跟随者,状态转换过程结束;

否则重新执行步骤(3.3)。

本发明还提供一种轻量级分布式去中心化系统的选主装置,包括多个节点管理模块,每个节点管理模块内设置有配置文件,其中:

各节点管理模块一一对应设置于分布式系统的各个硬件节点上,配置文件用于配置硬件节点的角色;

配置文件将多个硬件节点同时配置为调度节点,调度节点有领导者、跟随者、候选者三个状态,并且调度节点设有候选者状态转换单元、跟随者状态转换单元、领导者状态转换单元;

调度节点默认是候选者状态,通过选主方法确定活动调度节点,选主的原则是自荐制,谁先报名谁先获胜。

在一个具体的实施方式中,候选者状态转换单元、跟随者状态转换单元、领导者状态转换单元具体如下:

第一、所述候选者状态转换单元包括:

定时器激活子单元,用于激活自荐定时器;

自荐定时器超时T1时间前子单元:用于在自荐定时器超时T1时间前进行如下处理过程:

①若在调度心跳通道,收到其他节点发来的调度心跳信息,该信息包含调度的IP端口号、任期号自增,比较任期号是否大于本地,本地指本节点存储的任期号:

若是,则关闭自荐定时器,与调度节点建立连接,转换成跟随者;

若否,则判断自荐定时器是否超时T1时间,若未超时T1时间则返回自荐定时器超时T1时间前子单元,若超时T1时间则进入自荐定时器超时T1时间后子单元;

②若收到其他节点自荐信息,比较任期号是否大于本地:

若是,则判断在超时T2时间内是否收到该节点的调度心跳,该节点是指相对其他节点描述的当前节点,如果收到,则关闭定时器,与调度节点建立连接,转换成跟随者;如果没收到,则判断自荐定时器是否超时T1时间,若未超时T1时间则返回自荐定时器超时T1时间前子单元,若超时T1时间则进入自荐定时器超时T1时间后子单元;T1>T2,且T1、T2取值根据系统需求进行调整;

若否,则关闭自荐定时器,发送自荐信息,转为领导者;

③若在调度心跳通道,未收到其他节点发来的调度心跳信息,且未收到其他节点自荐信息,则进入自荐定时器超时T1时间后子单元;

自荐定时器超时T1时间后子单元,用于在自荐定时器超时T1时间后进行如下处理过程:

关闭自荐定时器,发送自荐信息,转为领导者。

第二,所述跟随者状态转换单元包括:

状态定时器和监听定时器子单元,用于启动状态定时器和监听定时器;

第一判断子单元,用于判断本节点的节点管理模块在超时T4时间内是否收到调度心跳:

如果是,则进入比较子单元;

如果否,则关闭状态定时器、监听定时器,转为候选者,并结束转换过程;

比较子单元,用于重置监听定时器,并对调度任期号和本地进行比较:

若调度任期号比本地大,则根据调度心跳重定向调度模块,与新调度模块建立连接,并进入第二判断子单元;

若调度任期号比本地小,则关闭状态定时器、监听定时器,转为候选者,并结束转换过程;

若调度任期号与本地相同,则进入第二判断子单元;

第二判断子单元,用于判断状态定时器是否超时:

如果否,则重新进入第二判断子单元;

如果是,节点管理模块重置状态定时器,并获取本节点状态,向调度模块发送本节点状态信息。

第三,领导者状态转换单元包括:

调度心跳子单元,当收到本节点自荐信息,则本节点转为领导者,调度模快立即发送一次调度心跳;

心跳定时器启动子单元,调度模快启动心跳定时器;

第三判断子单元,用于判断心跳定时器是否达到定时时间T5,T5<T2,T5取值根据系统需求进行调整:

如果达到定时时间T5,则判断是否满足最小系统资源,若满足,则重置心跳定时器,并发送调度心跳,返回步骤第三判断子单元等待下次定时时间到达;若不满足,则关闭心跳定时器,并转为候选者,状态转换过程结束;

如果未达到定时时间T5,则:

①判断是否收到其他节点调度心跳:

若收到其他节点调度心跳,且调度心跳中的任期号大于本地,本节点调度模块关闭心跳定时器,转为跟随者,状态转换过程结束;

否则重新执行第三判断子单元;

②判断是否收到其他节点自荐信息:

若收到其他节点自荐信息,且自荐信息中的任期号大于本地,本节点调度模块关闭心跳定时器,转为跟随者,状态转换过程结束;

否则重新执行第三判断子单元。

在一个具体的实施方式中,本发明分为首次运行、运行过程中两个阶段,具体为:

1、首次运行阶段(无调度模块选举出来)

每个具备候选者资格的节点管理模块有个随机时间自荐定时器,

首次启动后,激活自荐定时器,若在定时超时T1前,在调度心跳通道,收到调度发来的心跳信息(包含调度的IP端口号、任期号自增等),则关闭定时器,与调度节点建立连接,转换成跟随者;若在定时超时T1前,收到其他候选者发来的自荐信息,则关闭自荐定时器,已任期号最新的为准,监听调度心跳通道,监听发自荐信息节点的调度发送心跳信息,并与其建立连接,转为跟随者;若超过时间阈值T2没有收到调度心跳,则激活定时器。若定时时间到,未收到调度心跳和其他候选者发的自荐信息,则通过发现组播通道发送一次领导者自荐信息,此时转换成领导者,向所有节点管理模块发送调度心跳,当有调度心跳后,所有节点与其建立连接。

作为调度节点,如果最小系统资源不满足,则应停止发送调度心跳,本节点的节点管理模块超时T4没有收到调度心跳,则将等待新的调度节点,转为候选者,激活自荐定时器,当定时时间到,再发送自荐信息。

为避免极端情况,产生信息孤岛,小集群,若作为领导者发送调度心跳时,收到其他节点发来的调度心跳时,此时比较其他节点发来调度心跳任期号和本地当前任期号,如果本地任期号小,则关闭自荐定时器,停发调度心跳,等待其他调度模块发来的调度心跳,转为跟随者;如果本地任期号大,则继续发送调度心跳信息。若作为领导者发送调度心跳时,收到其他节点发来的自荐信息时,此时比较其他节点发来调度心跳任期号和本地当前任期号,如果本地任期号小,则关闭自荐定时器,等待其他调度模块发来的调度心跳;如果本地任期号大,则再发送一次自荐信息,更新本地任期号。

2、运行过程中(调度节点宕机)

运行过程中,跟随者检测到超时未收到调度心跳。若本节点为调度节点,本节点的节点管理模块在T4时间内没有收到调度心跳,则转为候选者;若在定时超时T1前,在调度心跳通道,收到调度发来的心跳信息(包含调度的IP端口号、任期号自增等),则关闭定时器,与调度节点建立连接,转换成跟随者;若在定时超时T1前,收到其他候选者发来的自荐信息,比较任期号,若任期号大于本地,则关闭自荐定时器,监听发自荐信息节点的调度发送心跳信息,并与其建立连接,转为跟随者;若超过时间阈值T2没有收到调度心跳,则激活定时器。若定时时间到,未收到调度心跳和其他候选者发的自荐信息,则通过发现组播通道发送一次领导者自荐信息,此时转换成领导者,向所有节点管理模块发送调度心跳,当有调度心跳后,所有节点与其建立连接。

作为调度节点,如果最小系统资源不满足,则应停止发送调度心跳,本节点的节点管理模块超时T4没有收到调度心跳,则将等待新的调度节点,转为候选者,激活自荐定时器,当定时时间到,再发送自荐信息。

为避免极端情况,产生信息孤岛,小集群,若作为领导者发送调度心跳时,收到其他节点发来的调度心跳时,此时比较其他节点发来调度心跳任期号和本地当前任期号,如果本地任期号小,则关闭自荐定时器,停发调度心跳,等待其他调度模块发来的调度心跳,转为跟随者;如果本地任期号大,则继续发送调度心跳信息。若作为领导者发送调度心跳时,收到其他节点发来的自荐信息时,此时比较其他节点发来调度心跳任期号和本地当前任期号,如果本地任期号小,则关闭自荐定时器,等待其他调度模块发来的调度心跳;如果本地任期号大,则再发送一次自荐信息,更新本地任期号。

综上,本发明依托节点上运行的节点管理模块和调度节点上的调度模块,实现了自动选主功能,从而解决了单点故障问题,避免调度节点宕机影响整个系统正常运行,使系统可长期稳定运行。此外,本发明不依赖任何开源组件,自主可控,可运行在多种操作系统上;系统中有一个调度节点正常运行即可满足系统运行要求,无半数以上正常运行的要求,系统稳定性好。

相关技术
  • 一种去中心化的共享WiFi管理方法和系统
  • 一种高效安全的去中心化资产托管清算平台系统
  • 一种分布式系统的选主方法、装置和分布式系统
  • 一种分布式系统去中心化方法及去中心化的分布式系统
技术分类

06120115933094