zoukankan      html  css  js  c++  java
  • jvm-sandbox-repeater学习笔记 1

    安装

    git clone https://github.com/alibaba/jvm-sandbox-repeater.git
    cd jvm-sandbox-repeater/bin
    ./bootstrap.sh
    

    执行完成后应该会在用户根目录cd ~生成一个 sandbox 目录,并且会启动一个 SpringBoot (Demo)应用(启动失败也无所谓,直接用自己的Java应用更方便)

    也可以直接执行curl -s http://sandbox-ecological.oss-cn-hangzhou.aliyuncs.com/install-repeater.sh | sh
    仅安装 sandbox,不部署 Demo 应用

    配置

    模板

    {
      "degrade": false,
      "exceptionThreshold": 1000,
      "httpEntrancePatterns": [
        "^/regress/.*$"
      ],
      "javaEntranceBehaviors": [
        {
          "classPattern": "com.alibaba.repeater.console.service.impl.RegressServiceImpl",
          "includeSubClasses": false,
          "methodPatterns": [
            "getRegress"
          ]
        }
      ],
      "javaSubInvokeBehaviors": [
        {
          "classPattern": "com.alibaba.repeater.console.service.impl.RegressServiceImpl",
          "includeSubClasses": false,
          "methodPatterns": [
            "getRegressInner"
          ]
        },
        {
          "classPattern": "com.alibaba.repeater.console.service.impl.RegressServiceImpl",
          "includeSubClasses": false,
          "methodPatterns": [
            "findPartner"
          ]
        },
        {
          "classPattern": "com.alibaba.repeater.console.service.impl.RegressServiceImpl",
          "includeSubClasses": false,
          "methodPatterns": [
            "slogan"
          ]
        }
      ],
      "pluginIdentities": [
        "http",
        "java-entrance",
        "java-subInvoke",
        "mybatis",
        "ibatis",
        "dubbo-provider",
        "dubbo-consumer"
      ],
      "repeatIdentities": [
        "java",
        "http"
      ],
      "sampleRate": 10000,
      "useTtl": true
    }
    

    说明

    配置项 释义
    useTtl 是否开启ttl线程上下文切换,开启之后,才能将并发线程中发生的子调用记录下来,否则无法录制到并发子线程的子调用信息
    degrade 是否执行录制降级策略,开启之后,不进行录制,只处理回放请求
    exceptionThreshold 异常发生阈值;默认1000
    sampleRate 采样率;最小力度万分之一;默认值:10000
    pluginsPath 插件地址
    httpEntrancePatterns 由于HTTP接口的量太大(前后端未分离的情况可能还有静态资源)因此必须走白名单匹配模式才录制
    javaEntranceBehaviors java入口插件动态增强的行为
    javaSubInvokeBehaviors java子调用插件动态增强的行为
    pluginIdentities 需要启动的插件
    repeatIdentities 回放器插件

    示例

    该配置实现了对/perf路径下接口的录制;
    mock了JPA中的两个mongo查询方法;
    cat ~/.sandbox-module/cfg/repeater-config.json

    {
      "degrade": false,
      "exceptionThreshold": 1000,
      "httpEntrancePatterns": [
        "^/perf/.*$"
      ],
      "javaEntranceBehaviors": [
        {
          "classPattern": "com.test.moudle.perf.service.PerfReportService",
          "includeSubClasses": true,
          "methodPatterns": [
            "getReportDetail"
          ]
        }
      ],
      "javaSubInvokeBehaviors": [
        {
          "classPattern": "com.test.moudle.perf.repository.PerfReportBaseRepository",
          "includeSubClasses": true,
          "methodPatterns": [
            "findAllByReportId"
          ]
        },
        {
          "classPattern": "com.test.moudle.perf.repository.PerfReportRepository",
          "includeSubClasses": true,
          "methodPatterns": [
            "findById"
          ]
        }
      ],
      "pluginIdentities": [
        "http",
        "java-entrance",
        "java-subInvoke"
      ],
      "repeatIdentities": [
        "java",
        "http"
      ],
      "sampleRate": 10000,
      "useTtl": true
    }
    

  • 相关阅读:
    使用JAX-WS(JWS)发布WebService(一)
    PING命令与ICMP协议
    子网划分和无分类编址
    谈谈网络分层和IP
    hydra暴力破解ssh服务器密码
    TCP报文解析
    OSI七层协议与TCP连接
    Java Native Interface调用C++代码
    Java的序列化和反序列化
    Java关于static的作用
  • 原文地址:https://www.cnblogs.com/CSunShine/p/11785856.html
Copyright © 2011-2022 走看看