Jvm-Sandbox-Repeater 拉取配置详解

今日分享主题:Jvm-Sandbox-Repeater 项目中当 sandbox 和 repeater 启动时,是如何来从 console 服务

今日分享主题:

Jvm-Sandbox-Repeater 项目中当 sandbox 和 repeater 启动时,是如何来从 console 服务端来拉取配置的。

今天的分享是基于之前发布的有关 Jvm-Sandbox-Repeater 2篇文章之上的,还没来得及看的同学,可以先补补功课,有助于更好的理解今天分享的内容。

Jvm-Sandbox-Repeater的部署

Jvm-Sandbox-Repeater 新增配置详解

Step1:挂载沙箱触发 sandbox & repeater两个模块启动(repeater 注入到被测的应用上)

sh ~/sandbox/bin/sandbox.sh -p `ps -ef | grep "console" | grep -v grep | awk '{print $2}'` -P 12250

挂载后,sandbox.log 如下图所示:

Jvm-Sandbox-Repeater 拉取配置详解

Sandbox 主要作用:

  1. 在jvm里面启动了 sandbox-mgr-module.jar 包
  2. 在jvm里面启动了 sandbox-core.jar 包
  3. 在jvm里面启动了 sandbox-agent.jar 包
  4. 在jvm里面启动了 repeater-module.jar 包
  5. 在jvm里面启动了 repeater-bootstrap.jar 包
  6. 拦截录制到的路由,执行 event=BEFORE,RETURN,THROWS 事件处理
  7. 会监听到 module_config 配置信息的推送

挂载后,repeater.log 如下图所示:

Jvm-Sandbox-Repeater 拉取配置详解

Repeater 主要作用:

  1. 是用来拉取 repeater.properties 文件中的配置信息
  2. plugin 插件的加载,用于录制及回放规则获取
  3. broadcast 广播消息,用于录制或回放触发
  4. 通知各个模块的当前状态,是否是激活或冻结
  5. 会监听到 onConfigChange 配置信息的推送

备注:sandbox 启动后是如何带着 repeater 模块启动的?是因为sandbox 的配置文件中指向了 repeater 模块目录,如下图所示:

Jvm-Sandbox-Repeater 拉取配置详解

./sandbox-module 目录结构如下:

Jvm-Sandbox-Repeater 拉取配置详解

包含了 repeater-module 模块,配置文件及 plugins 的jar 包。

Step2:repeater 启动后拉取配置

首先判断是单机还是非单机模式

Jvm-Sandbox-Repeater 拉取配置详解

查看 repeater.properties 配置如下

Jvm-Sandbox-Repeater 拉取配置详解

其次发起 http.get 请求拉配置

Jvm-Sandbox-Repeater 拉取配置详解

注意事项:

  1. 配置值都为“unknown”,上一篇文章特地说到此处:
 this.appName=getSystemPropertyOrDefault("app.name", "unknown");
 this.environment=getSystemPropertyOrDefault("app.env", "unknown");
  1. 请求的接口为:
public static final String DEFAULT_CONFIG_DATASOURCE = "repeat.config.url";

见 repeater.properties 配置截图。

最后看Console 提供的接口处理

Jvm-Sandbox-Repeater 拉取配置详解

查询数据库:

Jvm-Sandbox-Repeater 拉取配置详解

Jvm-Sandbox-Repeater 拉取配置详解

上一篇文章讲到了 JPA 的实现,这里就框架来完成自动查询 module_config表中的数据。

最终的提取console 返回的配置对象数据:

Jvm-Sandbox-Repeater 拉取配置详解

Repeater.log日志文件中有如下记录【如上图日志输出代码】:

2021-10-21 13:05:29 INFO  pull repeater config success,config={sampleRate=10000, plugin=[http, java-entrance, java-subInvoke]}

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/82592.html

(0)

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

关注微信