[jvm-sandbox] 多个agent并用

Posted orangleliu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[jvm-sandbox] 多个agent并用相关的知识,希望对你有一定的参考价值。

背景:某些需求导致会同时使用 jvm-sandbox-repeater 和 chaosblade-exec-jvm 两个基于jvm-sandbox的agent 同时注入到java程序中

尝试

jvm-sanbox版本(后面简称sandbox)

  • jvm-sandbox-repeater 2.1
  • chaosblade-exec-jvm 3.1

两个agent先后attach,只能attach成功第一个,第二个会失败,并且几乎没有什么日志。

解决办法

jvm-sandbox的最新文档中看到支持多租户,我们在官方的钉钉群也咨询过,如果两个agent的sanbox版本都是3.x,应该是可以同时工作的。

后来了解到3.x版本之后的sandbox才支持多租户,也就是说在启动sandbox的时候加上 --namespace 的参数才能实现自定义租户名,否则会使用 default 这个租户。

  • jvm-sandbox-repeater 升级到sandbox版本为1.3.3,并修改了启动脚本(attach模式可以指定namespace,但是perman模式没找到)
  • chaosblade-exec-jvm 是通过 chaosblade 命令行工具启动的,namespace被硬编码到了chaosblade程序中,所以需要修改代码,并重新编译

做完上述工作之后,两个agent可以正常attach。

对于同一个库,怎么确定两个agent是否能同时工作呢?
看切点,切的更上层的先被执行到,切的更底层的不会被执行。

希望对遇到同样场景的同学有所帮助。

以上是关于[jvm-sandbox] 多个agent并用的主要内容,如果未能解决你的问题,请参考以下文章

[jvm-sandbox] 多个agent并用

[jvm-sandbox] 多个agent并用

JVM-Sandbox常见报错

jvm-sandbox:基础了解及demo演示

jvm-sandbox:基础了解及demo演示

新开源报道 41阿里正式开源动态非侵入 AOP 解决方案 JVM-Sandbox