参考:https://github.com/alibaba/jvm-sandbox/wiki/CONFIG
结构说明:
./sandbox/bin/sandbox.sh |
沙箱的客户端脚本,用于启动、管理沙箱 |
./sandbox/cfg/ |
./sandbox/cfg/version 存放沙箱容器的版本号,当你不确定当前容器的版本的时候可以通过这个文件进行核对 ./sandbox/cfg/sandbox.properties 存放沙箱容器的配置信息,配置文件只会在沙箱容器启动的时候加载一次。他的详细配置解释可以单独见配置文件解释 ./sandbox/cfg/sandbox-logback.xml 沙箱容器选用Logback作为他的日志框架,所以这里开放日志配置文件允许进行个性化的日志配置 |
./sandbox/lib/ |
沙箱主程序的库包目录,这里存放的是沙箱工程的主程序,不能随意的删除、改名和移动! |
./sandbox/module/ |
沙箱系统模块目录,由配置项system_module进行定义。用于存放沙箱通用的管理模块,比如用于沙箱模块管理功能的module-mgr模块,未来的模块运行质量监控模块、安全校验模块也都将存放在此处,跟随沙箱的发布而分发。 系统模块不受刷新(-f)、**强制刷新(-F)功能的影响,只有容器重置(-R)**能让沙箱重新加载系统模块目录下的所有模块。 |
${HOME}/.sandbox-module/ |
沙箱用户模块目录,由sandbox.properties的配置项user_module进行定义,默认为${HOME}/.sandbox-module/。一般用于存放用户自研的模块。自研的模块经常要面临频繁的版本升级工作,当需要进行模块动态热插拔替换的时候,可以通过**刷新(-f)或强制刷新(-F)**来完成重新加载。 |
状态说明:
加载 |
模块被沙箱正确加载,沙箱将会允许模块进行命令相应、代码插桩等动作 |
卸载 |
沙箱不会再看到该模块,之前给该模块分配的所有资源都将会被回收,包括模块已经侦听事件的类都将会被移除掉侦听插桩,干净利落不留后遗症 |
激活 |
模块加载成功后默认是冻结状态,需要代码主动进行激活。模块只有在激活状态下才能监听到沙箱事件 |
冻结 |
模块进入到冻结状态之后,之前侦听的所有沙箱事件都将被屏蔽。需要注意的是,冻结的模块不会退回事件侦听的代码插桩,只有delete()、wathcing()或者模块被卸载的时候插桩代码才会被清理 |