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

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

具有以下优势:

  1. 方便灵活的配置系统和强大的容错重试以及报警机制,可以确保任务的正常完成。目前已嵌入SendCloud邮件发送系统, 用户只需要简单的配置SendCloud的账号即可直接使用
  2. 友好的管理控制台,能实时监控任务的进展。
  3. 灵活的任务调度系统,可用配置多种任务类型(定时任务, 手动执行任务, 任务链任务等等……)
  4. 完善的客户端监控服务,可用帮助实时监控客户端的机器性能。可单独作为服务器监控系统使用。

项目介绍

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

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

具有以下优势:

  1. 方便灵活的配置系统和强大的容错重试以及报警机制,可以确保任务的正常完成。目前已嵌入SendCloud邮件发送系统, 用户只需要简单的配置SendCloud的账号即可直接使用
  2. 友好的管理控制台,能实时监控任务的进展。
  3. 灵活的任务调度系统,可用配置多种任务类型(定时任务, 手动执行任务, 依赖链任务等等……)
  4. 完善的客户端监控服务,可用帮助实时监控客户端的机器性能。可单独作为服务器监控系统使用。

软件架构

安装教程

  1. 下载source, 根据自己的Mysql环境和Redis环境修改配置文件, 并打包.
  2. 初始化数据库
  3. 配置好redis数据库
  4. 启动scheduler服务端
  5. 如有需要, 配置好网络环境, 在客户机上启动Agent客户端
  6. 服务安装好后可以直接使用监控模块, 并内置支持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个步骤:

  1. 将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文>件路径。
  2. 新建spring boot项目,添加如下maven依赖:
org.springframework.boot spring-boot-starter-web 2.1.1.RELEASEorg.sam.shen radish-spring-boot-starter 1.0.1
  1. application.yml配置文件示例如下:
server: port: 8083 servlet: context-path: /${spring.application.name}spring: application: name: radish-agentradish: agent: # agent服务器的ip地址 ip: 127.0.0.1# 此端口同server.port port: 8083 # agent服务器名称,自行定义 name: test# 存放日志的路径 logpath: /tmp/log/radish# 存放脚本的路径 shpath: /tmp/log/radishscheduler: # 连接任务调度中心的地址 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
  1. 下面可以开发自定义的handler,需要注意的是自定义handler要继承AbsHandler抽象类,并且需要加上@Component注解。

关于批量启动微服务的jar包_分布式任务抢占及系统监控服务 Radish相关推荐

  1. win10 后台运行jar包_小编演示win10系统双击运行jar文件的教程

    win10系统是很多电脑用户首选的装机系统,然而有不少用户在使用过程中可能会碰到win10系统双击运行jar文件的情况.大部分用户电脑技术都是菜鸟水平,面对win10系统双击运行jar文件的问题,无法 ...

  2. 替换jar包_替换代码的情况下不停机!这操作可能工作6年的Java程序员都不会

    相信很多人都有这样一种感受,自己写的代码在开发.测试环境跑的稳得一笔,可一到线上就抽风,不是缺这个就是少那个反正就是一顿报错,而线上调试代码又很麻烦,让人头疼得很.不过, 阿里巴巴出了一款名叫Arth ...

  3. 若依微服务版后台服务通过jar包部署到Windows服务器

    场景 若依微服务版手把手教你本地搭建环境并运行前后端项目: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/109363303 在前 ...

  4. idea无法导入主题jar包_若依微服务版后台服务通过jar包部署到Windows服务器

    场景 若依微服务版手把手教你本地搭建环境并运行前后端项目: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/109363303 在前 ...

  5. MobileIMSDK怎样修改服务端核心jar包的源码并替换掉Java服务端的jar包

    场景 MobileIMSDK怎样将Java服务端运行起来以及打成jar包运行: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/11 ...

  6. Linux编辑启动停止重启springboot jar包脚本

    springboot的配置文件中,配置文件的名字都有各自的意义跟用途 dev 开发环境 prod 生产环境(默认) test 测试环境 加载指定配置文件 --spring.profiles.activ ...

  7. java service包_利用 javaService 发布服务(jar包)

    jar在java中作为一种项目的发布形式比较普遍,往往为了容易管理更需要作为一种系统服务发布--起码服务器重启了不用人工去重新打开你所以往运行的jar文件. 这里简单的介绍下怎么将jar发布到winN ...

  8. Failed to introspect Class...from ClassLoader...java.lang.ClassNotFoundException,IDEA启动没问题,jar包启动报错

    最近我引入了一个本地的jar包,引发了一系列的误导错误,特此记录. 首先我在IDEA上直接运行SpringBoot项目没有任何问题,可是当打包成jar包运行时,发生了以下错误,我本能的认为是类加载器的 ...

  9. kafka jar包_和同事交流不会kafka怎么行,API奉上,不是大神也能编

    对于kafka真的是又爱又恨,作为架构和大数据两个方面的通用者, 在这个数据量称雄的时代,越来越起到至关重要的作用,在和同事进行交流的时候,kafka在开发的过程中如何使用能起到最大的效果成为话题之一 ...

最新文章

  1. ERROR: Failed to resolve: com.android.databinding:library:3.4.2
  2. Vmware虚拟机中CentOS7与Docker安装图文教程
  3. sql between包括两端吗_SQL简单查询
  4. 监管大屏系统_工厂大屏可视化管控系统,智慧工厂平台是什么,工厂管理大屏软件 - 帆软...
  5. Django连接现有mysql数据库
  6. java 生成枚举_为什么编译器在Java中生成Enums?
  7. setupUi()引起的麻烦
  8. 自制带ftp服务的linux
  9. 3.3 CMMI3级——技术解决方案(Technical Solution)
  10. html自动登录网页,简单网页登陆代码html
  11. EXCEL表格中数字金额很大时后面零很多,如何设置直接以万元为单位显示,不显示后面的零
  12. Filter过滤器:使用过滤器保护指定资源,只有登录用户才能访问。若访问内容时用户没有登录则跳转到登录页面。
  13. android基础知识1
  14. 流体动力润滑(轴承油膜承载机理)
  15. 误差棒到底是个什么棒?到底棒不棒!
  16. Java钉钉开发_异常_01_error code:50002, error message:请求的员工userid不在授权范围内...
  17. 8月9日华为发布了其自研的鸿蒙操作系统,华为正式发布自研操作系统鸿蒙
  18. java开源 mooc,GitHub - bo5509/TinyMooc: 轻量级Java平台在线幕课学习网站
  19. git master 是啥?
  20. java 抛出指定异常信息_java 抛出异常处理的方法

热门文章

  1. 单细胞数据整合方法 | Comprehensive Integration of Single-Cell Data
  2. JavaScript pop()函数弹出数组最后数据
  3. 如何在Anaconda中实现多版本python Spyder共存
  4. uva 11367 (Dijkstra+DP)
  5. python爬虫(4)--Cookie的使用
  6. 装饰器前奏2(2017年8月23日 11:50:39)(2017年8月29日 16:07:32)
  7. 浅谈 温故知新——HTML5!
  8. 用Code::Blocks Code profiler插件剖析程序性能
  9. 宣布 Azure Backup 支持备份 Windows Server 2008
  10. Django1.7学习(二)