Schedulerx2.0支持多语言版本的分片模型-阿里云开发者社区

开发者社区> 黄晓萌> 正文

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

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
阿里云服务器端口号设置
阿里云服务器初级使用者可能面临的问题之一. 使用tomcat或者其他服务器软件设置端口号后,比如 一些不是默认的, mysql的 3306, mssql的1433,有时候打不开网页, 原因是没有在ecs安全组去设置这个端口号. 解决: 点击ecs下网络和安全下的安全组 在弹出的安全组中,如果没有就新建安全组,然后点击配置规则 最后如上图点击添加...或快速创建.   have fun!  将编程看作是一门艺术,而不单单是个技术。
4440 0
已经开发好的网站,进行多语言支持
最近开发一个项目,由于在欧洲使用,对于语言种类的要求比较多,本来只开发的中文,给华人华侨使用,但是业务需要,有些老外也需要使用这个项目,被要求进行多语言改造 但是受限于欧洲特定的语言较多的情况,显然不可能每个页面都分别用不同的语言编写一遍,最终经过查阅,决定采用最简单的办法解决这个需求: 以下是bing翻译插件使用过程: 1,打开http://www.bing.com/widge
1165 0
Schedulerx2.0支持多语言版本的分片模型
1. 简介 任务调度系统可以对多种任务进行调度(定时、编排、重刷历史数据等),有些任务调度系统还提供了分布式任务,帮助用户解决大数据处理的难题。分布式任务主要分为静态分片和动态分片。 1.1 静态分片 主要场景是处理固定的分片数,比如分库分表固定1024张表,需要若干台机器分布式去处理。
2614 0
Excelize 发布 2.1.0 版本, Go 语言 Excel 基础库 2020 年首个更新
Excelize 发布了 2.1.0 版本,该版本包含了多项新增功能、错误修复和兼容性提升优化。
977 0
+关注
黄晓萌
新一代分布式任务调度Schedulerx2.0的发起者
12
文章
0
问答
来源圈子
更多
文章排行榜
最热
最新
相关电子书
更多
文娱运维技术
立即下载
《SaaS模式云原生数据仓库应用场景实践》
立即下载
《看见新力量:二》电子书
立即下载