天天看點

JVM-Sandbox實踐Demo2

一、前置條件

完成jvm-sandbox搭建:demo1的内容

二、使用sandbox-debug-module進行其他處理

将example裡面的sandbox-debug-module.jar複制到目錄sandbox-module目錄下:

JVM-Sandbox實踐Demo2

此時,在sandbox-module目錄下,多了一個sandbox-debug-module.jar包

JVM-Sandbox實踐Demo2

三、啟動clock服務

在Clock.jar存放目錄,啟動服務:java -jar Clock.jar

JVM-Sandbox實踐Demo2

四、檢視程序号

指令:jps -l

JVM-Sandbox實踐Demo2

五、啟動沙箱

在sandbox的bin目錄下,啟動沙箱

JVM-Sandbox實踐Demo2

六、檢視沙箱加載情況

在sandbox的bin目錄下,指令:./sandbox.sh -p 程序号 -l

JVM-Sandbox實踐Demo2

七、執行debug子產品提供的服務

1、代碼trace情況

指令:./sandbox.sh -p 程序号 -d ‘方法’

JVM-Sandbox實踐Demo2

參考内容:https://github.com/alibaba/jvm-sandbox/blob/master/sandbox-debug-module/src/main/java/com/alibaba/jvm/sandbox/module/debug/DebugTraceModule.java

JVM-Sandbox實踐Demo2

原先封裝的Clock.jar,存在這個方法:

JVM-Sandbox實踐Demo2

2、注入延時情況

./sandbox.sh -p 程序号 -d ‘debug-ralph/delay?class=類名&method=方法名&delay=延遲時間’,注意機關為毫秒

JVM-Sandbox實踐Demo2

運作結果:

多等4s,才列印對應的内容

3、故障注入

指令:./sandbox.sh -p 程序号 -d ‘debug-ralph/wreck?class=類名&method=方法名&type=異常類型’

JVM-Sandbox實踐Demo2

異常注入前:

JVM-Sandbox實踐Demo2

異常注入後:

JVM-Sandbox實踐Demo2

繼續閱讀