Jarboot 一个强大的Java进程管理工具

Jarboot 一个强大的Java进程管理工具

2022-09-05 0 815
资源编号 38225 最近更新 2022-09-05
¥ 0人民币 升级VIP
立即下载 注意事项
下载不了?请联系网站客服提交链接错误!
增值服务: 安装指导 环境配置 二次开发 模板修改 源码安装

本期推荐的Jarboot 是一个Java进程启停、管理、诊断的平台,可以管理、守护、监控及诊断本地和远程的Java进程。

Jarboot 一个强大的Java进程管理工具

在测试环境、每日构建的集成环境,可以把一系列编译输出等jar文件放入约定的目录,由Jarboot提供友好的浏览器ui界面和http接口,统一管理它的启动、停止及状态的监控,以及执行命令对目标进程进行调试。

Jarboot 一个强大的Java进程管理工具

技术背景及目标

Jarboot 使用Java Agent和ASM技术往目标Java进程注入代码,无业务侵入性,注入的代码仅用于和 Jarboot 的服务实现命令交互,部分命令会修改类的字节码用于类增强,加入了与Arthas类似的命令系统,如获取JVM信息、 监控线程状态、获取线程栈信息等。

  • 浏览器界面管理,一键启、停服务进程,不必挨个手动执行
  • 支持启动、停止优先级配置,默认并行启动
  • 支持进程守护,开启后若服务异常退出则自动启动并通知
  • 支持文件更新监控,开启后若jar文件更新则自动重启
  • 调试命令执行,同时远程调试多个Java进程,界面更友好
Jarboot 一个强大的Java进程管理工具

架构简介

Jarboot 一个强大的Java进程管理工具

模块关系

Jarboot 一个强大的Java进程管理工具

序列图

安装或编译构建

使用Docker

sudo docker run -itd --name jarboot -p 9899:9899 mazheng0908/jarboot

编译源码的步骤

使用压缩包安装或者Docker的时候忽略此步骤

编译Jarboot源代码

#首先编译前端
$ cd jarboot-ui
#首次时需要先安装依赖,执行yarn或npm install
$ yarn

#执行编译,yarn build或npm run build,开发模式可执行yarn start或npm run start
$ yarn build

#切换到代码根目录,编译Java代码
$ cd ../
$ mvn clean install

启动Jarboot服务

#执行 startup.sh 启动, 在Windows系统上使用startup.cmd。
$ sh startup.sh

进入登录界面,初始的用户名:jarboot,默认密码:jarboot

Jarboot 一个强大的Java进程管理工具

SpringBoot应用

  • 引入spring-boot-starter-jarboot依赖
<dependency>
    <groupId>io.github.majianzheng</groupId>
    <artifactId>spring-boot-starter-jarboot</artifactId>
    <version>${jarboot.version}</version>
</dependency>
  • 实现CommandProcessorSPI接口

同样的, 你也可以在方法上使用 @Bean 注解来定义命令处理器。
如果没有使用@Name注解的话,将会默认使用Bean的名称作为命令的名称。

@Name("spring.command.name")
@Summary("The command summary")
@Description("The command usage detail")
@Component
public class DemoServiceImpl implements DemoService, CommandProcessor {
  @Override
  public String process(CommandSession session, String[] args) {
    return "Spring boot Demo user-defined command using Spring SPI";
  }
  //implement other method...
}

当引入了
spring-boot-starter-jarboot依赖后,将会增加2个Spring调试命令,spring.bean和spring.env

#spring.bean 用法:
$ spring.bean [-b <name>] [-d]
#示例:
# 获取所有的bean name
$ spring.bean
# 获取bean的信息
$ spring.bean -b beanName
# 获取bean的详细信息
$ spring.bean -b beanName -d

#sping.env 用法:
$ spring.env <name>
#示例:
$ spring.env spring.application.name

如何创建一个用户自定义的命令

  • 引入jarboot api的依赖
<dependency>
    <groupId>io.github.majianzheng</groupId>
    <artifactId>jarboot-api</artifactId>
    <scope>provided</scope>
    <version>${jarboot.version}</version>
</dependency>
  • 实现spi接口
/**
 * 使用Name注解来定义一个命令的名字
 */
@Name("demo")
@Summary("The command summary")
@Description("The command usage detail")
public class DemoCommandProcessor implements CommandProcessor {
    @Override
    public String process(CommandSession session, String[] args) {
        return "demo SPI command result.";
    }
}
  • 创建JDK的spi定义文件

在目录resources/META-INF/services中创建名为 com.mz.jarboot.api.cmd.spi.CommandProcessor的文件,内容为类的全名。

public class DemoApplication {
    public static void main(String[] args) {
        // do something
        try {
            //Notify completion
            JarbootFactory.createAgentService().setStarted();
        } catch (Exception e) {
            log(e.getMessage());
        }
    }
}
资源下载此资源为免费资源立即下载

申明:本文由第三方发布,内容仅代表作者观点,与本网站无关。对本文以及其中全部或者部分内容的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。本网发布或转载文章出于传递更多信息之目的,并不意味着赞同其观点或证实其描述,也不代表本网对其真实性负责。

七爪网 免费源码 Jarboot 一个强大的Java进程管理工具 https://www.7claw.com/38225.html

分享免费的开源源码

常见问题
  • 1、自动:拍下后,点击(下载)链接即可下载;2、手动:拍下后,联系卖家发放即可或者联系官方找开发者发货。
查看详情
  • 1、源码默认交易周期:手动发货商品为1-3天,并且用户付款金额将会进入平台担保直到交易完成或者3-7天即可发放,如遇纠纷无限期延长收款金额直至纠纷解决或者退款!;
查看详情
  • 1、七爪会对双方交易的过程及交易商品的快照进行永久存档,以确保交易的真实、有效、安全! 2、七爪无法对如“永久包更新”、“永久技术支持”等类似交易之后的商家承诺做担保,请买家自行鉴别; 3、在源码同时有网站演示与图片演示,且站演与图演不一致时,默认按图演作为纠纷评判依据(特别声明或有商定除外); 4、在没有”无任何正当退款依据”的前提下,商品写有”一旦售出,概不支持退款”等类似的声明,视为无效声明; 5、在未拍下前,双方在QQ上所商定的交易内容,亦可成为纠纷评判依据(商定与描述冲突时,商定为准); 6、因聊天记录可作为纠纷评判依据,故双方联系时,只与对方在七爪上所留的QQ、手机号沟通,以防对方不承认自我承诺。 7、虽然交易产生纠纷的几率很小,但一定要保留如聊天记录、手机短信等这样的重要信息,以防产生纠纷时便于七爪介入快速处理。
查看详情
  • 1、七爪作为第三方中介平台,依据交易合同(商品描述、交易前商定的内容)来保障交易的安全及买卖双方的权益; 2、非平台线上交易的项目,出现任何后果均与互站无关;无论卖家以何理由要求线下交易的,请联系管理举报。
查看详情

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务