一种分布式任务分片方法及系统技术方案

技术编号:39567447 阅读:7 留言:0更新日期:2023-12-03 19:18
本发明专利技术公开了一种分布式任务分片方法,包括以下步骤:将待处理数据拆分为

【技术实现步骤摘要】
一种分布式任务分片方法及系统


[0001]本专利技术属于智能电网领域,尤其是涉及一种分布式任务分片方法及系统


技术介绍

[0002]随着智能电网的建设与发展,电力信息数据越来越庞大与多元化,对数据的采集

存储

分析和管理的任务量呈现激增趋势

对这些庞大的电力数据处理任务,可通过任务分片执行的方式,大幅提升数据的处理效率

任务分片指将任务拆分成多个独立的任务项,由任务节点分别执行某一个或者多个分片,以提升任务执行效率的一种机制

任务分片有两个关键环节,即任务如何拆分为多个分片,多个分片又如何分配至各个节点执行,这两个问题影响着数据处理效率

在电力系统及其自动化
中,电力监测

分析和管理等业务数据具有时序性,需要依据顺序处理;并且在划分成数据分片后,分片在任务节点上属于有状态执行方式,例如任务节点在执行分片任务时,建立有
TCP
长连接和数据库表连接等业务状态资源,数据分片与任务节点的映射关系需要相对固定

即使在数据分片增大

减少,或者任务节点新增

退出时,在保持原有映射关系不变的基础上,发生最小的变化

[0003]现有主流任务调度框架包括
Quartz、Apache DolphinScheduler、Elastic

Job

>xxl

job

。Quartz
是基于
Java
实现的开源定时任务框架,具有丰富的调度方法与灵活的应用方式,但其不支持任务分片,缺乏定制化数据处理流程,缺少分布式并行调度的功能
。Apache DolphinScheduler
是一种开源的

分布式的大数据工作流调度系统,支持多种任务类型,具备任务监控和告警

安全与权限管理等特点
。Elastic

Job
是基于
Zookepper

Quartz
开发的
Java
分布式定时任务,解决了
Quartz
不支持分布式的弊端
。Elastic

Job
支持失效转移

弹性扩容

并行调度和作业重触发等机制,实现任务高可用
。xxl

job
是一种轻量级分布式任务调度框架,分离调度中心与执行器,支持弹性扩容

分片广播

故障转移

分布式执行和任务超时控制等功能

[0004]上述任务调度框架包含丰富多样的分片策略,例如平均分配

轮转分配

优先级分配和概率随机分配等,但是这些分片策略属于任务无状态的分片方式,未考虑电力信息数据分片的状态以及有序性

现有框架在分片增加与减小

任务节点新增

故障退出时,分片将重新打乱分配至各节点,这些分片需要重新创建
TCP
长连接等状态资源,额外增加网络等连接开销,浪费业务状态资源,甚至会丢失部分业务数据


技术实现思路

[0005]专利技术目的:本专利技术的目的旨在提供一种分布式任务分片方法,用于在分片

执行节点发生变化时,最小程度调整分片执行方式;本专利技术另一目的旨在提供一种分布式控制系统全站定值配置在线同步系统

[0006]技术方案:本专利技术所述的一种分布式任务分片方法,包括以下步骤:
[0007]步骤
1、
将待处理数据拆分为
N
个分片,每个分片固定的数据量为
X

[0008]步骤
2、
添加分片处理数据的索引,第
n
个分片对应的索引为
(n

1)X

nX
‑1,
n∈N

n
∈Z

[0009]步骤
3、
基于分片顺序依次添加任务节点编号
Task(n)
和任务节点标识;
[0010]步骤
4、
建立分片

索引

任务节点编号以及任务节点标识的映射关系;
[0011]步骤
5、
当处理数据发生变化时,根据数据变化的位置改变映射关系;
[0012]步骤
6、
对每次任务节点进行健康检测,根据实际的节点资源情况对其进行调整

[0013]其中,所述步骤5中当处理数据发生变化时,根据数据变化的位置改变映射关系;包括每次任务开始时检测待处理数据量与上次任务数据量进行比较,若待处理数据量与上次任务数据量相同,则保持上次分片的映射关系,继续执行任务;若待处理数据量与上次任务数据量不同,则改变映射关系

[0014]其中,所述待处理数据量与上次任务数据量不同,包括待处理数据量增加和减少;若待处理数据量增加则对现有的分片进行扫描,若现有分片未被占满,则新增的数据优先添加到未被占满的现有分片,多余的数据则组成新增的分片
n'

N+1
,此时检测是否存在空闲的节点资源,若存在空闲的节点资源,则将新增的分片分配至空闲的节点;若不存在空闲的节点资源,则启动新的节点,执行新增的分片;对于新增的任务节点
Task(n')
,同时增加对应的任务节点标识,原分片和节点的映射关系保持不变

[0015]其中,所述待处理数据量减少,则找到数据减少的对应分片
n
,记录减少数据开始的索引和结束的索引,退出对应分片
n
上这段数据的业务连接资源,原分片和节点的映射关系保持不变

[0016]其中,所述待处理数据量减少后若待处理数据再次增加,将新增的数据优先添加先前数据量减少的对应分片上

[0017]其中,所述步骤6中,对每次任务节点进行健康检测,根据实际的节点资源情况对其进行调整具体包括根据三个健康检测周期内对应任务节点是否有心跳返回判断任务节点是否健康

[0018]其中,所述任务节点三个健康检测周期内存在心跳返回,则按照原有的分片策略执行任务

[0019]其中,所述任务节点三个健康检测周期内不存在心跳返回,则认定该任务节点故障,将其该任务节点从节点群中去除;该故障的任务节点被去除后,对剩余节点群进行检测

[0020]其中,所述剩余节点群存在空闲本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.
一种分布式任务分片方法,其特征在于,包括以下步骤:步骤
1、
将待处理数据拆分为
N
个分片,每个分片固定的数据量为
X
;步骤
2、
添加分片处理数据的索引,第
n
个分片对应的索引为
(n

1)X

nX
‑1,
n∈N

n∈Z
;步骤
3、
基于分片顺序依次添加任务节点编号
Task(n)
和任务节点标识;步骤
4、
建立分片

索引

任务节点编号以及任务节点标识的映射关系;步骤
5、
当处理数据发生变化时,根据数据变化的位置改变映射关系;步骤
6、
对每次任务节点进行健康检测,根据实际的节点资源情况对其进行调整
。2.
根据权利要求1所述的分布式任务分片方法,其特征在于,所述步骤5中当处理数据发生变化时,根据数据变化的位置改变映射关系;包括每次任务开始时检测待处理数据量与上次任务数据量进行比较,若待处理数据量与上次任务数据量相同,则保持上次分片的映射关系,继续执行任务;若待处理数据量与上次任务数据量不同,则改变映射关系
。3.
根据权利要求2所述的分布式任务分片方法,其特征在于,所述待处理数据量与上次任务数据量不同,包括待处理数据量增加和减少;若待处理数据量增加则对现有的分片进行扫描,若现有分片未被占满,则新增的数据优先添加到未被占满的现有分片,多余的数据则组成新增的分片
n'

N+1
,此时检测是否存在空闲的节点资源,若存在空闲的节点资源,则将新增的分片分配至空闲的节点;若不存在空闲的节点资源,则启动新的节点,执行新增的分片;对于新增的任务节点
Task(n')
,同时增加对应的任务节点标识,原分片和节点的映射关系保持不变
。4.
根据权利要求...

【专利技术属性】
技术研发人员:张河马德超高原魏春雷张辽陈兴亮符鹏
申请(专利权)人:国电南瑞科技股份有限公司
类型:发明
国别省市:

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

1