Schedulerx2.0支持多语言版本的分片模型

简介: 1. 简介 任务调度系统可以对多种任务进行调度(定时、编排、重刷历史数据等),有些任务调度系统还提供了分布式任务,帮助用户解决大数据处理的难题。分布式任务主要分为静态分片和动态分片。 1.1 静态分片 主要场景是处理固定的分片数,比如分库分表固定1024张表,需要若干台机器分布式去处理。

1. 简介

任务调度系统可以对多种任务进行调度(定时、编排、重刷历史数据等),有些任务调度系统还提供了分布式任务,帮助用户解决大数据处理的难题。分布式任务主要分为静态分片和动态分片。

1.1 静态分片

主要场景是处理固定的分片数,比如分库分表固定1024张表,需要若干台机器分布式去处理。
主流的框架,开源有elastic-job。

1.2 动态分片

主要场景是分布式处理未知数据量的数据,比如一张大表不停在变更,想要分布式跑批。
主流的框架是schedulerx2.0提供的MapReduce模型,暂时还没有对外开源。

2. 多语言版本的分片模型

Schedulerx2.0当前支持多语言版本的分片模型,还具有高可用、流控、失败重试等特性,需要客户端版本1.1.0以上。

2.1 Java版本

  1. 控制台创建任务的时候,执行方式选择"分片运行",分片参数格式如下
    image
  2. 后端代码继承JavaProcessor即可,通过JobContext.getShardingId()可以拿到分片号,通过JobContext.getShardingParameter()可以拿到分片参数,比如
@Component
public class HelloWorldProcessor extends JavaProcessor {

    @Override
    public ProcessResult process(JobContext context) throws Exception {
        System.out.println("分片id=" + context.getShardingId() + ", 分片参数=" + context.getShardingParameter());
        return new ProcessResult(true);
    }

}
  1. 执行列表可以查看分片详情
    image

2.2 python版本

python用户想使用分布式跑批的福音来了,只需要安装一个agent,脚本都可以由schedulerx2.0维护:

  1. 下载schedulerx-agent包接入。
  2. 直接在控制台写python脚本和分片参数即可,脚本里sys.argv[1]是分片号,sys.argv[2]是分片参数
    image
  3. 执行列表可以查看分片详情
    image

2.3 其他脚本语言

shell和go脚本语言,和python类似,第一个系统参数是分片号,第二个是分片参数,就不一一demo了。

2.4 高可用

分片模型基于Map模型开发,可以继承Map模型高可用的特性,即某台worker执行过程中挂了,master worker会把分片failover到其他slave节点执行。

2.5 流控

分片模型基于Map模型开发,可以继承Map模型流控的特性,即可以控制单机子任务并发度。比如有1000个分片,一共10台机器,可以控制最多5个分片并发跑,其他在队列等待
image

2.6 分片自动失败重试

分片模型基于Map模型开发,可以继承Map模型子任务失败自动重试的特性
image

目录
相关文章
|
消息中间件 资源调度 数据可视化
企业级分布式批处理方案
在企业级大数据量批处理需求场景中,如何通过分布式方式来有效地提升处理效率。本文将就常见批处理框架Spring Batch与SchdulerX进行比较讨论。同时基于阿里巴巴分布式任务调度平台SchedulerX2.0,实现一个分布式并行批处理方案,展示其相关的功能特性。
3369 0
|
分布式计算 并行计算 数据库
Schedulerx2.0分布式计算原理&最佳实践
1. 前言 Schedulerx2.0的客户端提供分布式执行、多种任务类型、统一日志等框架,用户只要依赖schedulerx-worker这个jar包,通过schedulerx2.0提供的编程模型,简单几行代码就能实现一套高可靠可运维的分布式执行引擎。
28287 2
|
Java 关系型数据库 数据库连接
【SpringBoot】入门到精通 这一篇就够了
【SpringBoot】入门到精通 这一篇就够了
752 1
|
Java 开发工具 对象存储
Aliyun OSS Java SDK超时时间设置
Aliyun OSS Java SDK超时时间设置
17576 0
java发送微信公众号模板消息
java发送微信公众号模板消息
458 0
|
前端开发 Java
Java实现微信公众号发送通知
Java实现微信公众号发送通知
682 61
|
小程序
java--微信小程序发送模板消息
java--微信小程序发送模板消息
794 0
|
消息中间件 测试技术 领域建模
DDD - 一文读懂DDD领域驱动设计
DDD - 一文读懂DDD领域驱动设计
52530 6
|
消息中间件 存储 资源调度
订单超时处理的几种方案及分析
描述业务常见的订单超时处理的几种方案及分析
34076 19
订单超时处理的几种方案及分析
|
资源调度 数据可视化 容灾
Spring Cloud Alibaba定时任务
Spring Cloud Alibaba定时任务是阿里巴巴开发的一款低延时、高可用、可视化的任务调度产品(定时、任务依赖编排、分布式跑批),支持日志服务、监控大盘、报警监控。
3848 2

热门文章

最新文章