• 2. jvm-sandbox之结构和状态


    参考: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()或者模块被卸载的时候插桩代码才会被清理

     

     

     

  • 相关阅读:
    dp
    数学分析 + 容斥原理
    容斥
    并查集
    矩阵hash + KMP
    扫描线
    位运算
    2015 Multi-University Training Contest 5 1009 MZL's Border
    iOS ZipArchive文件解压缩
    iOS GCD倒计时
  • 原文地址:https://www.cnblogs.com/moonpool/p/14510274.html
Copyright © 2020-2023  润新知