成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Jarboot:一個強大的Java進程管理工具

開發 前端
本期推薦的Jarboot 是一個Java進程啟停、管理、診斷的平臺,可以管理、守護、監控及診斷本地和遠程的Java進程。

本期推薦的Jarboot 是一個Java進程啟停、管理、診斷的平臺,可以管理、守護、監控及診斷本地和遠程的Java進程。

[[443204]]

在測試環境、每日構建的集成環境,可以把一系列編譯輸出等jar文件放入約定的目錄,由Jarboot提供友好的瀏覽器ui界面和http接口,統一管理它的啟動、停止及狀態的監控,以及執行命令對目標進程進行調試。

技術背景及目標

Jarboot 使用Java Agent和ASM技術往目標Java進程注入代碼,無業務侵入性,注入的代碼僅用于和 Jarboot 的服務實現命令交互,部分命令會修改類的字節碼用于類增強,加入了與Arthas類似的命令系統,如獲取JVM信息、 監控線程狀態、獲取線程棧信息等。

  • 瀏覽器界面管理,一鍵啟、停服務進程,不必挨個手動執行
  • 支持啟動、停止優先級配置,默認并行啟動
  • 支持進程守護,開啟后若服務異常退出則自動啟動并通知
  • 支持文件更新監控,開啟后若jar文件更新則自動重啟
  • 調試命令執行,同時遠程調試多個Java進程,界面更友好

架構簡介 

模塊關系 

序列圖 

安裝或編譯構建

使用Docker

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

編譯源碼的步驟

使用壓縮包安裝或者Docker的時候忽略此步驟

編譯Jarboot源代碼 

  1. #首先編譯前端 
  2. $ cd jarboot-ui 
  3. #首次時需要先安裝依賴,執行yarn或npm install 
  4. $ yarn 
  5.  
  6. #執行編譯,yarn build或npm run build,開發模式可執行yarn start或npm run start 
  7. $ yarn build 
  8.  
  9. #切換到代碼根目錄,編譯Java代碼 
  10. $ cd ../ 
  11. $ mvn clean install 

啟動Jarboot服務 

  1. #執行 startup.sh 啟動, 在Windows系統上使用startup.cmd。 
  2. $ sh startup.sh 

進入登錄界面,初始的用戶名:jarboot,默認密碼:jarboot

SpringBoot應用

引入spring-boot-starter-jarboot依賴 

  1. <dependency> 
  2.     <groupId>io.github.majianzheng</groupId> 
  3.     <artifactId>spring-boot-starter-jarboot</artifactId> 
  4.     <version>${jarboot.version}</version> 
  5. </dependency> 

實現CommandProcessorSPI接口

同樣的, 你也可以在方法上使用 @Bean 注解來定義命令處理器。

如果沒有使用@Name注解的話,將會默認使用Bean的名稱作為命令的名稱。 

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

當引入了spring-boot-starter-jarboot依賴后,將會增加2個Spring調試命令,spring.bean和spring.env。 

  1. #spring.bean 用法: 
  2. $ spring.bean [-b <name>] [-d] 
  3. #示例: 
  4. # 獲取所有的bean name 
  5. $ spring.bean 
  6. # 獲取bean的信息 
  7. $ spring.bean -b beanName 
  8. # 獲取bean的詳細信息 
  9. $ spring.bean -b beanName -d 
  10.  
  11. #sping.env 用法: 
  12. $ spring.env <name
  13. #示例: 
  14. $ spring.env spring.application.name 

如何創建一個用戶自定義的命令

引入jarboot api的依賴

  1. <dependency> 
  2.     <groupId>io.github.majianzheng</groupId> 
  3.     <artifactId>jarboot-api</artifactId> 
  4.     <scope>provided</scope> 
  5.     <version>${jarboot.version}</version> 
  6. </dependency> 

實現spi接口 

  1. /** 
  2.  * 使用Name注解來定義一個命令的名字 
  3.  */ 
  4. @Name("demo"
  5. @Summary("The command summary"
  6. @Description("The command usage detail"
  7. public class DemoCommandProcessor implements CommandProcessor { 
  8.     @Override 
  9.     public String process(CommandSession session, String[] args) { 
  10.         return "demo SPI command result."
  11.     } 

創建JDK的spi定義文件

在目錄resources/META-INF/services中創建名為 com.mz.jarboot.api.cmd.spi.CommandProcessor的文件,內容為類的全名。 

  1. public class DemoApplication { 
  2.     public static void main(String[] args) { 
  3.         // do something 
  4.         try { 
  5.             //Notify completion 
  6.             JarbootFactory.createAgentService().setStarted(); 
  7.         } catch (Exception e) { 
  8.             log(e.getMessage()); 
  9.         } 
  10.     } 

 

 

責任編輯:未麗燕 來源: 今日頭條
相關推薦

2023-03-07 14:21:57

2019-07-22 20:03:23

Docker操作系統Linux

2021-03-17 10:29:35

systemdLinux管理工具

2021-01-14 15:41:22

LinuxSupervisor命令

2025-03-21 08:30:00

容器管理開發開源

2021-03-04 12:55:01

systemd進程管理工具Linux

2018-11-09 09:40:52

2015-07-28 15:10:55

2020-04-29 09:42:51

Linux 服務器 工具

2022-06-06 08:37:13

Linux遠程桌面工具

2023-03-07 07:43:27

2022-11-04 07:16:45

2013-09-12 10:03:09

項目管理項目管理工具

2013-09-12 10:19:03

移動項目管理

2011-11-10 09:53:52

項目管理

2022-01-10 10:23:00

云計算云成本工具

2011-08-12 10:38:09

MongoDB

2021-11-17 10:01:59

工具KubernetesLinux

2025-04-17 04:00:00

SQLite-WebSQLite數據庫

2022-05-25 16:59:27

Kubectl-IcKubernetesPod
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 91精品国产一区二区三区 | 四虎免费视频 | 久久久蜜桃一区二区人 | 久久久久中文字幕 | 亚洲欧美日韩国产综合 | 欧美综合一区二区三区 | 成人免费看片又大又黄 | 日韩av在线免费 | 精品九九 | 夜夜骑首页 | av在线一区二区三区 | 精品欧美在线观看 | 欧美精品一区二区免费 | 在线观看成人小视频 | 欧美vide| 四虎永久在线精品免费一区二 | 天天操夜夜操 | 国产在线精品一区二区三区 | 欧美啪啪 | 日日夜精品视频 | 伊人久久综合影院 | 亚洲 欧美 综合 | 国产黄色在线 | 黑人巨大精品欧美一区二区免费 | 日韩欧美中文字幕在线观看 | 欧美日韩成人网 | 天堂男人av | 国产精品视频一区二区三区不卡 | 国产精品国产三级国产aⅴ中文 | 国产99久久精品一区二区永久免费 | 日日操日日舔 | 国产亚洲二区 | 国产激情视频在线观看 | 国产精品久久久久久久久久软件 | 成人在线中文字幕 | 亚洲在线一区 | 中文字幕福利视频 | 天天操夜夜操 | 欧美中文一区 | 欧美四虎| 麻豆a级片|