Jarboot以客户端形式集成到k8s、Docker的方法

原创
2021/11/25 22:59
阅读数 852

首先,Jarboot可以启动、停止、守护、诊断本地服务器上的Java进程,同时也已经支持远程服务器上的进程连接到某一台服务启动上的Jarboot的服务上。

这样做可以使用一个Jarboot服务来诊断其他若干台服务器上的Java服务。

简介

Jarboot示例图,如下为本地管理的服务进程:

在线调试的诊断功能

切换到【在线调试】菜单界面后,会显示未受管理的本地进程和远程进程,未受管理指的是:不是由Jarboot来启动的进程。

一个Java进程不管是否由Jarboot来启动都可以使用它来诊断。如下图,在线调试界面:

集群服务如何连接到远程服务上的Jarboot呢?

这个过程不需要改动任何业务代码,完全无侵入式的。只需要在java启动命令中加上几条参数就可以了。

启动命令修改方法:

java -Djarboot.remote=192.168.1.59:9899 -Djarboot.name=demo_test -javaagent:/jarboot所在路径/jarboot/bin/jarboot-agent.jar  -jar demo-server.jar

  1. 第一部分:指定要连接的Jarboot的服务的地址;
  2. 第二部分(可选):指定自己的名称,该名称会显示在【在线调试】列表中,若未指定则默认使用jar文件名或类名
  3. 第三部分:指定javaagent,jarboot-agent.jar的路径,保证jarboot文件的完整性,在客户端模式下jarboot-server.jar不需要;

只需将上述参数额外附加到已有项目的启动命令上即可实现连接。

使用jt脚本的方法:

使用jt.cmd或jt.sh脚本启动

#使用本地Jarboot服务地址异步非阻塞启动
sh jt.sh -async -jar demo.jar
#指定Jarboot服务地址
sh jt.sh -h 192.168.1.59:9899 -async -jar demo.jar

#同步阻塞启动
sh jt.sh -sync -jar demo.jar
sh jt.sh -h 192.168.1.59:9899 -sync -jar demo.jar

使用Docker

使用Docker的服务也是一样的修改启动命令,如下示例:

FROM openjdk:17-jdk-alpine

EXPOSE 9899

ENV JARBOOT_VERSION 2.0.0

#Jarboot的完整包
COPY jarboot /jarboot
COPY demo-server.jar /demo-server.jar

#指定环境变量
ENV JARBOOT_HOME /jarboot

#指定jarboot.remote、jarboot.name和jarboot-agent.jar
ENTRYPOINT ["java","-Djarboot.remote=192.168.1.59:9899","-Djarboot.name=demo","-javaagent:/jarboot/bin/jarboot-agent.jar","-jar","/demo-server.jar"]

 

展开阅读全文
加载中
点击引领话题📣 发布并加入讨论🔥
0 评论
0 收藏
0
分享
返回顶部
顶部