CN114448995A - 基于raft选主策略的分布式计算方法 - Google Patents
基于raft选主策略的分布式计算方法 Download PDFInfo
- Publication number
- CN114448995A CN114448995A CN202111604352.4A CN202111604352A CN114448995A CN 114448995 A CN114448995 A CN 114448995A CN 202111604352 A CN202111604352 A CN 202111604352A CN 114448995 A CN114448995 A CN 114448995A
- Authority
- CN
- China
- Prior art keywords
- leader
- node
- task
- calculation
- follower
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000004364 calculation method Methods 0.000 title claims abstract description 57
- 238000000034 method Methods 0.000 claims abstract description 13
- 238000012545 processing Methods 0.000 claims description 12
- 238000004891 communication Methods 0.000 claims description 3
- 238000004458 analytical method Methods 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- 230000005484 gravity Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 230000001737 promoting effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
- H04L67/1044—Group management mechanisms
- H04L67/1051—Group master selection mechanisms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5072—Grid computing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/10—Active monitoring, e.g. heartbeat, ping or trace-route
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/02—Topology update or discovery
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/46—Secure multiparty computation, e.g. millionaire problem
- H04L2209/463—Electronic voting
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Health & Medical Sciences (AREA)
- Cardiology (AREA)
- General Health & Medical Sciences (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明公开一种基于raft选主策略的分布式计算方案,属于分布式任务调度技术领域。本分布式方案主要用于复杂计算和持续性计算场景,这些应用计算量大,需要时间持续计算,计算过程为异步操作,分为任务下发和结果回调。***包含多个计算节点,这些计算节点分为leader、follower和candidate,任务分配和结果收集是通过选举出来的leader进行处理的。本发明由于***主要是做计算,所以去掉了一致性的存储模块,必要的信息会通过外部***存储。本发明具备一定的容错能力和动态扩展能力,适用于高性能高可用的复杂计算和持续性计算场景。
Description
技术领域
本发明涉及一种基于raft选主策略的分布式计算方法,属于分布式任务调度技术领域。
背景技术
随着社会和技术的发展,计算机面临越来越多的大型计算任务,包括复杂计算和持续性计算,单个计算机硬件的发展难以跟上处理性能的需求。因此,需要将计算任务拆分成多个独立的任务项,交给多个计算机同时完成,达到快速处理的目的。另外,计算场景也可能产生变化,比如分析网络摄像头数据,会从100路摄像头发展到分析150路摄像头。需要完成计算功能的***具有灵活的扩展性和稳定性。分布式计算***可以拆分下发任务,实现负载均衡,也具有扩展性和稳定性。
分布式***最重要的就是共识算法,是指解决各节点之间的数据一致性,让***作为一个达成共识的整体而工作,并且能够容忍部分节点掉线甚至出错。在分布式计算中,共识算法主要涉及任务分配,结果反馈和节点掉线问题,一般通过选定一个主节点,控制其他从节点的方式实现。主节点的选定,根据应用场景不同,可以固定配置,也可以通过竞争或者投票产生。固定配置主节点的方式,适用于单个局域网环境和主节点固定的小型应用场景;分布式***竞争或投票产生主节点的方式,适用于复杂计算场景和分布式存储场景。
raft算法是用于分布式存储的共识算法,主要包括选主策略和日志同步策略,保证***多个节点存储数据的一致性和稳定性。在一些为主计算型的分布式***中,不需要分布式存储,如视频流分析,密文破译。因此本发明仅参考了其中的选主策略。
发明内容
针对现有技术的不足,本发明提供了一种基于raft选主策略的分布式计算方法,以实现主节点自动选举,多节点的共同执行任务和反馈结果,提供高效稳定且可伸缩的计算能力。
本发明提供了一种基于raft选主策略的分布式计算方法,该***节点分为leader、follower和candidate,所述leader是主节点,所述follower是计算节点,所述candidate是leader的候选节点;通过如下步骤进行计算和反馈:
S01,首先通过客户端发送计算任务到***;
S02,由所述节点leader解析和分解计算任务;
S03,节点leader根据follower的负载,下发计算任务;
S04,由所述节点follower计算结果并发送给节点leader;
S05,节点leader将计算结果处理后,回调客户端。
leader是主节点,作用是:1)维护***信息,2)响应客户端请求,3)拆分和下发任务,4)反馈计算结果。follower是计算节点,作用是:1)执行计算任务,2)选举leader时投票,3)提升为candidate。candidate是leader的候选节点,作用是:可以通过选举成为新的leader。
本发明的进一步限定技术方案,前述的基于raft选主策略的分布式计算方法,所述***节点的角色转换过程如下:
***启动时,所有节点都是follower;
所有节点监听来自leader的心跳信息,当接收心跳超时,就提升为candidate,并向其他节点广播投票信息;
节点收到投票信息后,进行投票;
当candidate节点收到超过一半投票信息后,成为新的leader;
***维护一个任期term,当某个节点接收到的term大于自己的term,不论当前是哪个角色,都转为follower。
***会维护每个节点到当前leader的路由链路,实现方式是在每个节点保存一个中间节点信息,这个中间节点是到当前leader链路的下一个节点,这个链路在投票和心跳过程中就会记录下来。
前述的基于raft选主策略的分布式计算方法,每个节点保持和leader通信,通过leader的心跳广播,各个节点都维护一个自己到leader的路由;***内广播时,各个节点只向联通节点发送消息,并由节点过滤掉重复的信息。
前述的基于raft选主策略的分布式计算方法,所述leader需要和外部存储服务通信,并限定与外部存储服务直接连通的节点提升为candidate,简化通信处理流程。
前述的基于raft选主策略的分布式计算方法,所述follower节点之间没有需要同步的信息;增加节点可以自动进行,新增节点只需要和leader通信,由leader加入***中即可;删除节点需要管理员操作,告知leader将某个节点从***中删除。
进一步的,前述的基于raft选主策略的分布式计算方法,所述客户端的计算任务流程分为任务接收、任务执行和任务返回;
所述任务接收是接收客户端的请求,并下发,
leader收到客户端的计算任务,
leader对任务进行拆分,并存入任务池,
leader回复收到客户端的任务;
所述任务执行是各个节点不断接收和执行分片任务,
leader从任务池获取任务,
leader下发任务到follower,
follower返回计算结果,
leader保存计算结果;
如果是持续性结果输出,就会通过leader返回数据给客户端;
重复第一步,leader继续从任务池获取任务;
所述任务返回,是获取到计算结果或者客户端停止任务。
上述步骤涉及任务数据、节点数据和中间计算结果的存储。因为本发明主要考虑计算型任务,所以存储模块交给外部存储服务实现,可以是分布式数据库。要求只有和外部存储服务直接互通的follower可以提升为candidate,进一步成为leader,进行***控制。
上述步骤涉及***内的广播消息。广播消息的实现方法是,每个节点向自己连接的所有节点发送广播消息,如心跳信息、任务下发信息、选举信息。如果接受到重复的广播消息,则丢弃。收到广播消息后,记录发送的对端信息,即可完成整个***节点到当前广播消息起始节点的路由信息。
***支持动态扩展,加入新节点,会通过广播反向路由,向leader发送加入信息。leader将新的***节点信息存储下来。如果要删除旧节点,则需要管理员发送删除指令。
***暂停和恢复。短时间内,超过1/2节点失联,***进入暂停状态,各个节点也会暂停计算任务。***暂停后,不会因为节点数增加,自动恢复。需要手动处理,输入新的所有节点信息,并启动才会重新投票恢复。
本发明的有益效果:本发明在raft选主基于上***支持动态扩展,raft选主策略是一个简单高效的过程,但raft自身做分布式存储,重心在一致性和高效,不需要做动态扩展;本发明可以通过主节点记录的方式,动态扩展。此外本申请方案不需要节点两两互通,***通过广播消息记录路由信息,实现各个节点到leader的消息转发,简化不同局域网搭建***的过程。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,附图中的实施例不构成对本发明的任何限制,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为节点角色和转换过程。
图2为本实施例***架构。
图3为分布式计算***的任务架构。
图2中:F1、F2、F3为follower节点,L为leader节点,db是外部存储服务。
具体实施方式
下面结合附图与实施例对本发明技术方案作进一步详细的说明,这是本发明的较佳实施例。应当理解,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例;需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为了更好的理解上述的技术方案,下面将结合说明书附图以及具体的实施方式对上述技术方案进行详细的说明。
实施例一
本实施例提供了一种基于raft选主策略的分布式计算方法,该***节点分为leader、follower和candidate,所述leader是主节点,所述follower是计算节点,所述candidate是leader的候选节点;通过如下步骤进行计算和反馈:
S01,首先通过客户端发送计算任务到***;
S02,由所述节点leader解析和分解计算任务;
S03,节点leader根据follower的负载,下发计算任务;
S04,由所述节点follower计算结果并发送给节点leader;
S05,节点leader将计算结果处理后,回调客户端。
如图2所示,公开一种***架构图,***包括多个分布式计算节点和一个外部存储服务。图中***节点不是都两两互通。分布式计算节点分为leader和follower。leader和candidate通过广播,向所有follower发送消息,并在此过程形成***网络拓扑。follower通过***拓扑,向leader和candidate发送消息。不需要所有节点都会连接上外部存储。不是所有节点都能从follower提升为candidate,只有能连接上外部存储的follower才能成为candidate。这种***架构,***逻辑流程简单,可以方便多个局域网共同部署整个分布式***。
如图1所示,图中有***的3个角色follower、candidate和leader的转换过程,这个过程和raft算法一致;所有节点维护一个当前leader的任期term值,term值是不断增加的,如果发现更高的term,说明***选举了新的leader。***启动时,所有节点都是follower,然后***会选举出一个leader,进行分布式计算的任务调度。选举过程如下:
1.***启动时,所有节点的term为0,并开始内部的心跳计时器。
2.可以连接外部存储的follower等到心跳计时器超时,就将自己提升为candidate,自己的term加1,并广播投票信息。
3.follower接收到投票信息后。返回投票结果,更新拓扑,继续广播投票信息。
4.candidate处理投票结果。
1)超过半数投票。自己成功新的leader,开始广播心跳信息;
2)收到的信息里有当前的leader产生,自己转为follower;
3)收到的信息有更高的term,自己转为follower;
4)超时仍未收到超过半数投票。重复到第2个步骤;
5)leader通信,收到更高的term,自己转为follower。
如图3所示,是本实施例***的任务架构。分布式计算***,会处理时间长,过程复杂,资源占用高的计算任务,因此任务需要异步处理。***接收到任务后,会将任务进行分片,然后分配到各个计算节点,任务最终计算完成后,回调返回到客户端。其中,如果需要持续性输出计算结果,如摄像头视频流分析,则有计算结果后就回调返回客户端。本发明的计算任务处理,主要分成3个部分,任务接收、任务执行和任务返回。其具体流程如下所示:
1.任务接收是接收客户端的请求,拆分;
1)leader收到客户端的计算任务;
2)leader对任务进行拆分,并存入任务池;
3)leader回复收到客户端的任务。
2.任务执行是各个节点不断接收和执行分片任务;
1)leader从任务池获取任务;
2)leader下发任务到follower;
3)follower返回计算结果;
4)leader保存计算结果;
5)如果是持续性结果输出,如摄像头分析,这里就会通过leader返回数据给客户端;
6)重复第一步,leader继续从任务池获取任务。
3.任务返回,是获取到计算结果,或者客户端停止任务。
各个节点都会暂存自己的计算结果,如果成功发送到leader,再进行删除。如果接收leader的心跳超时,则暂停发送计算结果,甚至暂停计算。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (6)
1.一种基于raft选主策略的分布式计算方法,其特征在于该***节点分为leader、follower和candidate,所述leader是主节点,所述follower是计算节点,所述candidate是leader的候选节点;通过如下步骤进行计算和反馈:
S01,首先通过客户端发送计算任务到***;
S02,由所述节点leader解析和分解计算任务;
S03,节点leader根据follower的负载,下发计算任务;
S04,由所述节点follower计算结果并发送给节点leader;
S05,节点leader将计算结果处理后,回调客户端。
2.根据权利要求1所述的基于raft选主策略的分布式计算方法,其特征在于:所述***节点的角色转换过程如下:
***启动时,所有节点都是follower;
所有节点监听来自leader的心跳信息,当接收心跳超时,就提升为candidate,并向其他节点广播投票信息;
节点收到投票信息后,进行投票;
当candidate节点收到超过一半投票信息后,成为新的leader;
***维护一个任期term,当某个节点接收到的term大于自己的term,不论当前是哪个角色,都转为follower。
3.根据权利要求1所述的基于raft选主策略的分布式计算方法,其特征在于:每个节点保持和leader通信,通过leader的心跳广播,各个节点都维护一个自己到leader的路由;***内广播时,各个节点只向联通节点发送消息,并由节点过滤掉重复的信息。
4.根据权利要求1所述的基于raft选主策略的分布式计算方法,其特征在于:所述leader需要和外部存储服务通信,并限定与外部存储服务直接连通的节点提升为candidate,简化通信处理流程。
5.根据权利要求4所述的基于raft选主策略的分布式计算方法,其特征在于:所述follower节点之间没有需要同步的信息;增加节点可以自动进行,新增节点只需要和leader通信,由leader加入***中即可;删除节点需要管理员操作,告知leader将某个节点从***中删除。
6.根据权利要求1所述的基于raft选主策略的分布式计算方法,其特征在于:所述客户端的计算任务流程分为任务接收、任务执行和任务返回;
所述任务接收是接收客户端的请求,并下发,
leader收到客户端的计算任务,
leader对任务进行拆分,并存入任务池,
leader回复收到客户端的任务;
所述任务执行是各个节点不断接收和执行分片任务,
leader从任务池获取任务,
leader下发任务到follower,
follower返回计算结果,
leader保存计算结果;
如果是持续性结果输出,就会通过leader返回数据给客户端;
重复第一步,leader继续从任务池获取任务;
所述任务返回,是获取到计算结果或者客户端停止任务。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111604352.4A CN114448995A (zh) | 2021-12-24 | 2021-12-24 | 基于raft选主策略的分布式计算方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111604352.4A CN114448995A (zh) | 2021-12-24 | 2021-12-24 | 基于raft选主策略的分布式计算方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114448995A true CN114448995A (zh) | 2022-05-06 |
Family
ID=81364818
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111604352.4A Pending CN114448995A (zh) | 2021-12-24 | 2021-12-24 | 基于raft选主策略的分布式计算方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114448995A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116149827A (zh) * | 2023-04-04 | 2023-05-23 | 云粒智慧科技有限公司 | 分布式任务调度***和分布式任务调度执行*** |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105005570A (zh) * | 2014-04-23 | 2015-10-28 | 国家电网公司 | 基于云计算的海量智能用电数据挖掘方法及装置 |
CN109298937A (zh) * | 2018-09-19 | 2019-02-01 | 中国联合网络通信集团有限公司 | 文件解析方法及网络设备 |
CN109327509A (zh) * | 2018-09-11 | 2019-02-12 | 武汉魅瞳科技有限公司 | 一种主/从架构的低耦合的分布式流式计算框架 |
CN110430064A (zh) * | 2017-03-30 | 2019-11-08 | 腾讯科技(深圳)有限公司 | 区块链***、消息处理方法及存储介质 |
CN113079200A (zh) * | 2021-03-19 | 2021-07-06 | 北京三快在线科技有限公司 | 一种数据处理的方法、装置及*** |
-
2021
- 2021-12-24 CN CN202111604352.4A patent/CN114448995A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105005570A (zh) * | 2014-04-23 | 2015-10-28 | 国家电网公司 | 基于云计算的海量智能用电数据挖掘方法及装置 |
CN110430064A (zh) * | 2017-03-30 | 2019-11-08 | 腾讯科技(深圳)有限公司 | 区块链***、消息处理方法及存储介质 |
CN109327509A (zh) * | 2018-09-11 | 2019-02-12 | 武汉魅瞳科技有限公司 | 一种主/从架构的低耦合的分布式流式计算框架 |
CN109298937A (zh) * | 2018-09-19 | 2019-02-01 | 中国联合网络通信集团有限公司 | 文件解析方法及网络设备 |
CN113079200A (zh) * | 2021-03-19 | 2021-07-06 | 北京三快在线科技有限公司 | 一种数据处理的方法、装置及*** |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116149827A (zh) * | 2023-04-04 | 2023-05-23 | 云粒智慧科技有限公司 | 分布式任务调度***和分布式任务调度执行*** |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11360854B2 (en) | Storage cluster configuration change method, storage cluster, and computer system | |
CN111935315B (zh) | 区块同步方法及装置 | |
CN112583931B (zh) | 消息处理方法、消息中间件、电子设备和存储介质 | |
CN110113406B (zh) | 基于分布式的计算服务集群*** | |
CN112965839B (zh) | 消息传输方法、装置、设备及存储介质 | |
CN111800285A (zh) | 实例迁移方法和装置以及电子设备 | |
CN114448995A (zh) | 基于raft选主策略的分布式计算方法 | |
CN109560903B (zh) | 一种完全容灾的车载指挥通信*** | |
CN114124650A (zh) | 一种sptn网络控制器主从部署方法 | |
CN114172792B (zh) | 一种保证服务高可用的序号生成方法的实现方法及装置 | |
CN112003943A (zh) | 语音数据同步方法和装置 | |
JP2740105B2 (ja) | 分散データベース制御方法 | |
US20230275807A1 (en) | Data processing method and device | |
CN111541608B (zh) | 一种网络通信的方法、***以及相关装置 | |
CN113055461B (zh) | 一种基于ZooKeeper的无人集群分布式协同指挥控制方法 | |
WO2024119751A1 (zh) | 一种多以太网交换机的信息交换方法及相关装置 | |
CN116614517B (zh) | 一种针对边缘计算场景的容器镜像预热及分发方法 | |
CN111669427A (zh) | 一种软件定义网络发布订阅***和方法 | |
CN110502342A (zh) | 一种间歇网络环境下机动边缘信息服务网络 | |
CN113542775B (zh) | 直播保活服务***、直播保活管理方法、服务器及介质 | |
US20240176762A1 (en) | Geographically dispersed hybrid cloud cluster | |
CN113407634A (zh) | 一种数据同步方法、装置、***、服务器和存储介质 | |
CN112187542A (zh) | 数据通信的集群方法及*** | |
CN113360783A (zh) | 用户在线列表更新方法、装置及计算机设备 | |
CN111953760B (zh) | 数据同步方法、装置、多活***及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |