jenv 是一款 Java 多版本管理工具,它为安装,切换,删除和列出候选提供了一个方便的命令行界面。"
Mossrose-高可用分布式调度框架
- 授权协议:Apache
- 开发厂商:未知
- 开发语言:java
- 收录时间:2020-11-25
- 操作系统:Windows,Linux,OS X
- 软件作者:jiuxiantuan
- 开源标签: 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/RANDOMjobs: - 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?"); } @Overridepublic void execute(String item) { System.out.println(Thread.currentThread() + " DistributedJob: " + item); }}
相关阅读
-
-
一个不需要controller类的spring扩展,只需在对应的service接口上应用controller相关注解,便能提供如同controller一样直接访问对应接口实现类的service方法。"
-
nutz-web,一个 Jetty 启动器 + Nutz.Mvc Ajax 视图"
-
Mines 是由 Java 语言实现的 Spring 对象校验插件库,内部校验基于 Oval 实现,基于 Oval 封装的原因是该框架开源并且功能强大,同时支持JSR-303。"
-
Perforce Software日前发布了一款纯Java版的Perforce Plug-in for Eclipse。