JVM-sandbox源码分析

JVM沙箱容器,一种JVM的非侵入式运行期AOP解决方案
Real - time non-invasive AOP framework container based on JVM

源代码地址:https://github.com/alibaba/jvm-sandbox.git

使用文档: https://github.com/alibaba/jvm-sandbox/wiki

官方有使用文档,可以先看官方的,下面的文档只是简要说明和注意事项。

1 安装步骤

1.1 安装

参考 :https://github.com/alibaba/jvm-sandbox/wiki/QUICK-START

或者解压压缩包,按以下目录规则放置就可以。

./sandbox/
    +--bin/
    |   +--sandbox.sh
    |
    +--cfg/
    |   +--sandbox-logback.xml
    |   +--sandbox.properties
    |   `--version
    |
    +--lib/
    |   +--sandbox-agent.jar
    |   +--sandbox-core.jar
    |   `--sandbox-spy.jar
    |
    +--provider/
    |   `--sandbox-mgr-provider.jar
    |
   +--module/    
    |   `--sandbox-mgr-module.jar
   +--sandbox-module/
         `--**-module.jar

基于sandbox开发的模块放置在${SANDBOX_HOME}/sandbox-module/ 或者 ${user.home}/.sandbox-module/下

日志查看路径: ${user.home}/logs/sandbox/

2.2 修改配置cfg/sandbox.properties

参考 :https://github.com/alibaba/jvm-sandbox/wiki/CONFIG

配置server.ip 和 server.port, sandbox对外提供http接口来进行操作控制,不配置的话端口随机,测试比较麻烦。。

2 项目使用

参考:https://github.com/alibaba/jvm-sandbox/wiki/INSTALL

sandbox支持attach和javaagent两种启动模式。

其中sandbox.sh脚本是attach的使用方式,通过不同命令参数调用sandbox不同的http接口,从而达到控制的目的。

3 相关接口介绍

3.1 version 查看环境信息

http://${server.ip}:${server.port}/sandbox/${namespace:default}/module/http/sandbox-info/version

3.2 list 查看加载的模块

http://${server.ip}:${server.port}/sandbox/${namespace:default}/module/http/sandbox-module-mgr/list

3.3 其他

http://${server.ip}:${server.port}/sa

ndbox/${namespace:default}/module/http/${@Information#id}/${@Command#value}

4 ClassLoader机制

发表评论 / Comment

用心评论~