Schedulerx2.0支持多语言版本的分片模型
1. 简介
任务调度系统可以对多种任务进行调度(定时、编排、重刷历史数据等),有些任务调度系统还提供了分布式任务,帮助用户解决大数据处理的难题。分布式任务主要分为静态分片和动态分片。
1.1 静态分片
主要场景是处理固定的分片数,比如分库分表固定1024张表,需要若干台机器分布式去处理。
主流的框架,开源有elastic-job。
1.2 动态分片
主要场景是分布式处理未知数据量的数据,比如一张大表不停在变更,想要分布式跑批。
主流的框架是schedulerx2.0提供的MapReduce模型,暂时还没有对外开源。
2. 多语言版本的分片模型
Schedulerx2.0当前支持多语言版本的分片模型,还具有高可用、流控、失败重试等特性,需要客户端版本1.1.0以上。
2.1 Java版本
- 控制台创建任务的时候,执行方式选择"分片运行",分片参数格式如下
- 后端代码继承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); } }
- 执行列表可以查看分片详情
2.2 python版本
python用户想使用分布式跑批的福音来了,只需要安装一个agent,脚本都可以由schedulerx2.0维护:
- 下载schedulerx-agent包接入。
- 直接在控制台写python脚本和分片参数即可,脚本里sys.argv[1]是分片号,sys.argv[2]是分片参数
- 执行列表可以查看分片详情
2.3 其他脚本语言
shell和go脚本语言,和python类似,第一个系统参数是分片号,第二个是分片参数,就不一一demo了。
2.4 高可用
分片模型基于Map模型开发,可以继承Map模型高可用的特性,即某台worker执行过程中挂了,master worker会把分片failover到其他slave节点执行。
2.5 流控
分片模型基于Map模型开发,可以继承Map模型流控的特性,即可以控制单机子任务并发度。比如有1000个分片,一共10台机器,可以控制最多5个分片并发跑,其他在队列等待
2.6 分片自动失败重试
分片模型基于Map模型开发,可以继承Map模型子任务失败自动重试的特性
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
【云栖号】重磅发布!新手上云第一站,助力你轻松上云!
阿里云官网正式推出“云栖号”,旨在为大家提供第一手的上云资讯,来自不同行业精选的企业上云案例,基于众多成功案例萃取而成的最佳实践,助力你进行上云决策,0门槛更轻松的上云。 目前,云栖号分为三大版块,分别为热点资讯、快速入门、热门案例及最佳实践。下面带大家详细了解一下这三个板块。 云栖号 访问地址:https://www.aliyun.com/#module-yedOfott8 (一)热点资讯:一站式第一手的上云资讯,时刻了解行业信息 资讯爆炸的时代,想了解上云计算资讯,需要去各个媒体去查看? 云栖号-热点资讯板块,让你一站式了解热点上云资讯。 热点资讯 板块,主要的内容为上云科技资讯,“云栖号头条快讯”和其他资讯会收录当下热点的上云资源,包括但不局限于云计算,AI,大数据,物联网,云安全,企业应用类资讯。让你一站式快速了解行业热点。 点击看热点资讯:云栖号-热点资讯 (二)快速入门:快速了解阿里云,云产品,常用上云场景入门 业务要上云,不了解云产品是什么,如何用? 云栖号-快速入门板块精选最适合新手的阿里云入门,云产品入门,场景入门,助力你快速学习! 快速入门板块主要是帮助新手、想要学...
- 下一篇
2019年Java中高级面试题总结(7),228道系列查漏补缺!
2019年Java面试题中高级系列228道 Java面试题(一) 第一篇更新1~20题的答案解析 第二篇更新21~50题答案解析 第三篇更新51~95题答案解析 Java面试题(二) 第四篇更新1~20题答案解析 第五篇更新21~50题答案解析 第六篇更新51~80题答案解析 Java 面试题(二) 81、说出几条 Java 中方法重载的最佳实践? 82、在多线程环境下,SimpleDateFormat 是线程安全的吗? 83、Java 中如何格式化一个日期?如格式化为 ddMMyyyy 的形式? 84、Java 中,怎么在格式化的日期中显示时区? 85、Java 中 java.util.Date 与 java.sql.Date 有什么区别? 86、Java 中,如何计算两个日期之间的差距? 87、Java 中,如何将字符串 YYYYMMDD 转换为日期? 89、如何测试静态方法?(答案) 90、怎么利用 JUnit 来测试一个方法的异常? 91、你使用过哪个单元测试库来测试你的 Java 程序? 92、@Before 和 @BeforeClass 有什么区别? 93、怎么检查一个字符...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16
- CentOS关闭SELinux安全模块
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS8编译安装MySQL8.0.19
- CentOS7安装Docker,走上虚拟化容器引擎之路
- Eclipse初始化配置,告别卡顿、闪退、编译时间过长
- CentOS7,8上快速安装Gitea,搭建Git服务器
- SpringBoot2整合Redis,开启缓存,提高访问速度
- CentOS7设置SWAP分区,小内存服务器的救世主