jvm sandbox 2020 3-3 repeater的qunar实践

sandbox repeater的qunar实践。

qunar目前使用sandbox repeater做录制回放,包括后续要做的全链路压测,所有使用到mock功能的地方。

mock功能最痛苦的地方在于对需要mock地方的梳理。目前对于跨应用链路的梳理业界已经比较成熟,比如阿里的鹰眼,skywalking等,qunar也有自己的链路追踪系统。所以跨应用的调用梳理和mock已经不是特别大的问题。

但是复杂业务场景很多jvm级方法也需要mock,这在qunar内部大量使用。那么如何梳理出jvm级的调用链路就很重要,目前业界没有特别成熟的方案。

想要获取jvm方法调用链路的主要思路有这么几个:

1.复用异常栈

java的异常中可以携带调用信息,只需要在合适的位置抛出异常(自抛自接,不能影响业务),然后将异常中的链路信息记录下来即可。

这是一个反向逻辑,如果把方法调用想象成一棵树,那么要找到叶子,在每个叶子处抛异常。这个找叶子的过程会有挑战。

2.jvm-sandbox

jvm-sandbox提供了事件响应机制,比如qunar正在使用的jvm-sandbox-repeater。无论是sandbox还是repeater都可以将jvm级方法录制下来。

参考官方文档

 "javaSubInvokeBehaviors":[          需要录制和mock的java方法的配需要
        {
            "classPattern":"com.qunar.flight.fuwu.*",
            "includeSubClasses":false,
            "methodPatterns":[             
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值