[发明专利]基于Raft协议的任务调度方法、系统、电子设备和介质在审
申请号: | 202211467908.4 | 申请日: | 2022-11-22 |
公开(公告)号: | CN116055563A | 公开(公告)日: | 2023-05-02 |
发明(设计)人: | 路晓梦;王世彪;王志海;喻波;董晓斌 | 申请(专利权)人: | 北京明朝万达科技股份有限公司 |
主分类号: | H04L67/60 | 分类号: | H04L67/60;G06F9/48;G06F16/28;H04L67/1042 |
代理公司: | 北京中原华和知识产权代理有限责任公司 11019 | 代理人: | 寿宁;张珉 |
地址: | 100142 北京市海淀区阜外亮*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 raft 协议 任务 调度 方法 系统 电子设备 介质 | ||
本发明公开了一种基于Raft协议的任务调度方法、系统、电子设备和介质,所述方法包括如下步骤:所述调度服务根据Raft协议从多个节点中选举出leader节点,所述leader节点用于将任务分发给执行器,所述leader节点与数据库双主架构的其中一台服务器保持长连接;每个执行器通过调度服务获取leader节点的信息,并向leader节点发送该执行器的注册信息,所述leader节点根据注册信息在数据库中插入一条执行器信息,然后该执行器与follower节点保持心跳,所述follower节点根据心跳在数据库中更新该执行器对应的心跳时间;所述leader节点获取待执行任务,并根据数据库中的执行器信息将待执行任务分发给相应的执行器;所述执行器接收到待执行任务后,执行待执行任务并向leader节点发送任务接收响应。
技术领域
本发明涉及数据库分布式任务处理,具体涉及一种基于Raft协议的任务调度方法、系统、电子设备和介质。
背景技术
分布式是一种计算机算法,分布式计算是计算机科学中一个研究方向,它研究如何把一个需要非常巨大的计算能力才能解决的问题分成许多小的部分,然后把这些部分分配给多个计算机进行处理,最后把这些计算结果综合起来得到最终的结果。
任务调度是指系统为了自动完成特定任务,在约定的特定时刻去执行任务的过程。
Raft协议是一个共识算法,即使是在部分节点故障、网络延时、网络分割的情况下,网络中的多个节点也能对某个事情达成一致的看法。
数据库高可用一直都是企业的重中之重,mysql是一种常用的关系型数据库,中小企业很多都会采用mysql主从、一主多从、读写分离等集群部署方案,其中,单主架构存在单点故障,从库切换成主库需要做改动、无法达到自动切换,而采用mysql双主架构(互为主从)虽然可以解决单点故障问题、提高数据库的高可用性,但随之也带来了很多风险,比如数据冲突导致数据覆盖、数据丢失等。
此外,数据的一致性是个老生常谈的问题,在现有的分布式任务调度框架中,为了保证框架的轻量级,部分框架采用了mysql的“for update”数据库锁机制来保证一致性。但由于mysql双主架构下的缺点,采用数据库锁机制来保证一致性的方案也不再能完全满足要求。Mysql双主架构也存在多个方案,比如双主多写与双主单写,其中,双主单写这种方案虽然能达到数据库的高可用,但是在切换时同样无法保证一致性,双主多写也不能完全保证写入的一致性。
发明内容
基于上述现状,本发明的主要目的在于提供一种基于Raft协议的任务调度方法,应用于数据库的双主架构,不采用其他中间件方案,实现了分布式任务调度,能够保证数据的一致性与可用性。
为实现上述目的,本发明采用的技术方案如下:
本发明的第一方面提供了一种基于Raft协议的任务调度方法,应用于数据库的双主架构,所述双主架构的通信连接集群包括多个节点,且每个节点能够通过调度服务对所述数据库进行读写操作;
所述方法包括如下步骤:
S100,所述调度服务根据Raft协议从所述多个节点中选举出leader节点,所述leader节点用于将任务分发给相应的执行器,所述leader节点与所述数据库双主架构的其中一台服务器保持长连接;
S200,每个执行器通过所述调度服务获取所述leader节点的信息,并向所述leader节点发送该执行器的注册信息,所述leader节点根据所述注册信息在所述数据库中插入一条执行器信息,然后该执行器与所述多个节点中的follower节点保持心跳,所述follower节点根据所述心跳在所述数据库中更新该执行器对应的心跳时间;
S300,所述leader节点从所述数据库中获取待执行任务,并根据所述数据库中的执行器信息将所述待执行任务分发给相应的执行器;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京明朝万达科技股份有限公司,未经北京明朝万达科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202211467908.4/2.html,转载请声明来源钻瓜专利网。