高可用分布式调度框架 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://codercto.com/soft/d/13858.html

并发的艺术

并发的艺术

Clay Breshears / 聂雪军 / 机械工业出版社 / 2010年9月 / 49.00元

如果你希望通过并发编程来充分发挥多核处理器的强大功能,那么本书将为你提供所需的理论知识和实际经验。《并发的艺术》是为数不多的几本介绍如何在多核处理器的共享内存模型中实现算法的书籍之一,它并非仅仅介绍一些理论模型或者分布式内存架构。本书详细分析了各种示例程序,这些内容非常有助于你将串行代码转换为并行代码,此外还介绍了如何避免一些常见的错误。 本书的作者是Intel公司的一位资深工程师,他从事并......一起来看看 《并发的艺术》 这本书的介绍吧!

html转js在线工具
html转js在线工具

html转js在线工具

RGB HSV 转换
RGB HSV 转换

RGB HSV 互转工具

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具