抢占 java_分布式任务抢占与系统监控服务

radish

项目介绍

分布式任务抢占及系统监控服务。

适用于中小微企业,将系统任务独立部署,统一管理。区别与传统的嵌入在系统中的任务, 可以很好的解耦任务服务。

具有以下优势:

方便灵活的配置系统和强大的容错重试以及报警机制,可以确保任务的正常完成。目前已嵌入SendCloud邮件发送系统, 用户只需要简单的配置SendCloud的账号即可直接使用

友好的管理控制台,能实时监控任务的进展。

灵活的任务调度系统,可用配置多种任务类型(定时任务, 手动执行任务, 依赖链任务等等……)

完善的客户端监控服务,可用帮助实时监控客户端的机器性能。可单独作为服务器监控系统使用。

软件架构

65abf962b80d21d956fd2e403e9cc4e5.png%E7%B3%BB%E7%BB%9F%E6%9E%B6%E6%9E%84%E8%AE%BE%E8%AE%A1.jpg

安装教程

下载source, 根据自己的Mysql环境和Redis环境修改配置文件, 并打包.

初始化数据库

配置好redis数据库

启动scheduler服务端

如有需要, 配置好网络环境, 在客户机上启动Agent客户端

服务安装好后可以直接使用监控模块, 并内置支持Shell 和 Python脚本任务

Agent开发使用

一、普通java项目

普通的java开发只需要在java项目中添加jar包的依赖,具体代码启动示例如下:

public static void main(String[] args) {

int nettyPort = 8084;

// 初始化agent监听程序

ScriptHandler scriptHandler = new ScriptHandler();

RadishAgent radishAgent = new RadishAgent(Collections.singletonList(scriptHandler));

radishAgent.setShPath("/tmp/log/radish");

radishAgent.setLogPath("/tmp/log/radish");

radishAgent.setScheduingServer("http://127.0.0.1:8888/radish-scheduing");

AgentInfo agentInfo = new AgentInfo();

agentInfo.setAgentName("java-test");

agentInfo.setAgentIp("127.0.0.1");

agentInfo.setAgentPort(8083);

agentInfo.setNetwork("netty");

agentInfo.setNettyPort(nettyPort);

radishAgent.setAgentInfo(agentInfo);

radishAgent.start();

// 由于是java启动,没有web容器,因此需要启动netty监听程序,用于server读取agent日志

HandlerLogNettyServer.getInstance(nettyPort).start();

}

注:输出日志需要添加logback.xml配置文件,jar包最好引用radish-core-1.0.1-jar-with-dependencies.jar,这是把radish-core本身依赖的jar已经整体打包,不需要额外添加。

二、基于spring boot应用开发

这是比较推荐的一种开发方式,可以分为以下4个步骤:

将radish-core-1.0.1.jar和radish-spring-boot-starter-1.0.1.jar这2个jar包导入maven本地仓库中,mvn install:install-file -Dfile=本地jar包文件路径 -DpomFile=本地pom文>件路径。

新建spring boot项目,添加如下maven依赖:

org.springframework.boot

spring-boot-starter-web

2.1.1.RELEASE

org.sam.shen

radish-spring-boot-starter

1.0.1

application.yml配置文件示例如下: server:

port: 8083

servlet:

context-path: /${spring.application.name}

spring:

application:

name: radish-agent

radish:

agent:

# agent服务器的ip地址

ip: 127.0.0.1

# 此端口同server.port

port: 8083

# agent服务器名称,自行定义

name: test

# 存放日志的路径

logpath: /tmp/log/radish

# 存放脚本的路径

shpath: /tmp/log/radish

scheduler:

# 连接任务调度中心的地址

server: http://192.168.140.146:8888/radish-scheduing

# 设置agent日志访问的模式,目前仅支持servlet和netty两种

log-view-mode: servlet

# 当log-view-mode为netty时需要设置如下参数,推荐使用servlet

log-view-netty:

port: 8084

下面可以开发自定义的handler,需要注意的是自定义handler要继承AbsHandler抽象类,并且需要加上@Component注解。

参与贡献

Fork 本项目

新建 Feat_xxx 分支

提交代码

新建 Pull Request

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值