高可用分布式调度框架 Mossrose

码农软件 · 软件分类 · 作业/任务调度 · 2019-09-04 13:27:16

软件介绍

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);
    }
}

本文地址:https://www.codercto.com/soft/d/13858.html

理解专业程序员

理解专业程序员

(美)杰拉尔德·温伯格(GeraldM.Weinberg) / 刘天北 / 清华大学出版社 / 2006-7 / 25.00元

《理解专业程序员》通过行内专家的独特视角,介绍了如何成为优秀程序员,如何提高工作绩效等问题。全书由多篇讨论程序员职业的短文组成,内容精彩绝伦,是一部任何在这个变化急剧的领域工作的人都不可错过的重要作品。本书论述生动翔实——你肯定能从中认出你自己和你的公司的故事——因此不仅极富教益,而且读来也引人入胜。 各篇主题包括:对于专业程序员重要的若干问题,成为专业程序员的途径,在企业官僚体......一起来看看 《理解专业程序员》 这本书的介绍吧!

CSS 压缩/解压工具
CSS 压缩/解压工具

在线压缩/解压 CSS 代码

RGB转16进制工具
RGB转16进制工具

RGB HEX 互转工具

在线进制转换器
在线进制转换器

各进制数互转换器