[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并用的主要内容,如果未能解决你的问题,请参考以下文章
Neutron分析—— neutron-dhcp-agent