天天看点

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

继续阅读