Mossrose高可用分布式调度框架
Mossrose,高可用分布式调度框架
环境要求:
Zookeeper
Java 8
安装
<dependency> <groupId>com.jiuxian</groupId> <artifactId>mossrose</artifactId> <version>1.1.0-RELEASE</version> </dependency>
核心概念
SimpleJob
简单任务
DistributedJob
分布式任务,通过slice()方法将作业分隔成多个子任务,子任务在集群内分布执行
MossroseProcess
多个MossroseProcess组成集群,集群保证有且只有一个节点竞选成为主节点,主节点负责触发作业;所有节点都是工作节点,主节点触发的任务会在所有工作节点上分布执行
MossroseConfig
Mossrose配置,包括集群元信息和任务元信息
快速上手
实现一个简单任务
public class SomeJob implements SimpleJob { @Override public void execute() { System.out.println("SimpleJob: " + UUID.randomUUID()); } }
配置任务 - mossrose.yaml
# Mossrose config info --- cluster: name: mossrose-example # 集群命名空间 loadBalancingMode: ROUND_ROBIN # 集群负载均衡策略,可选:ROUND_ROBIN/RANDOM jobs: - id: 1 # 作业ID group: test # 作业分组(可选) cron: 0/5 * * * * ? # 作业cron表达式 runInCluster: true # 是否在集群中分布执行,如果为false,则只在主节点上执行 main: com.jiuxian.mossrose.test.SomeJob # 作业类全名
运行mossrose主类
public class MainTest { @Test public void test() throws Exception { String zks = "localhost"; // zookeeper集群地址 try (MossroseProcess process = new MossroseProcess( MossroseConfigFactory.fromClasspathYamlFile("mossrose.yaml"), new ZookeeperClusterDiscovery("/mossrose/jobtest", zks), zks)) { process.run(); try { // Block the unit test Thread.sleep(60 * 60 * 1000); } catch (InterruptedException e) { } } } }
分布式任务
实现一个分布式任务
public class SomeDistributedJob implements DistributedJob { @Override public List slice() { return Splitter.on(" ").splitToList("This is a test on the mossrose distributed job, how are you feeling?"); } @Override public void execute(String item) { System.out.println(Thread.currentThread() + " DistributedJob: " + item); } }
评论
light-task-scheduler分布式任务调度框架
LTS(light-task-scheduler)主要用于解决分布式任务调度问题,支持实时任务,定时
light-task-scheduler分布式任务调度框架
0
micro-job分布式任务调度框架
快速开始micro-job是一款分布式任务调度执行框架,内部通过各个组件的Jersey共享出的Rest路径进行数据访问。名词解释:consumer -> 任务消费节点schedule ->
micro-job分布式任务调度框架
0
Primus分布式训练调度框架
Primus是一个用于机器学习应用程序的通用分布式训练调度框架,管理机器学习框架(如Tensorflow、Pytorch)的训练生命周期和数据分布,帮助训练框架获得更好的分布式能力。功能多训练框架支持
Primus分布式训练调度框架
0
light-task-scheduler分布式任务调度框架
LTS(light-task-scheduler)主要用于解决分布式任务调度问题,支持实时任务,定时任务和Cron任务。有较好的伸缩性,扩展性,健壮稳定性而被多家公司使用。1.支持分布式,解决多点故障
light-task-scheduler分布式任务调度框架
0
OhMyScheduler分布式调度平台&计算框架
OhMyScheduler是基于Akka架构的新一代分布式调度与计算框架,能让您轻松完成作业的调度与
OhMyScheduler分布式调度平台&计算框架
0