• 全链路压测 LinkAgent


    LinkAgent(https://github.com/shulieTech/LinkAgent)是数列科技的一个基于Java的开源agent,通过字节码增强,实现对Java应用程序的数据收集和逻辑控制, 是全链路压测的一部分,同时开源的还有控制台(Takin-web)部分,对于压力构造部分还未开源。

    全链路压测中一个重要的问题是如何区分是否是压测流量,以及如何处理压测数据。 

    关于第一个问题,一般在构造压测请求时,会在HTTP的Head部分写入压测标识,对于Dubbo等也是相同原理, 程序根据这个标识判断是否是压测流量。 

    关于第二个问题,对于压测数据,可以带上压测标识写入业务表。也可以写入影子表, 无论怎样都需要对代码进行修改。 

    LinkAgent采用了Java字节码增强技术,通过javaagent完成对中间件的修改,根据压测标识,写入影子库或者影子表。 

    例如:

    我们在压测注册接口时,会写入一些数据,假如我们使用的Druid连接池, LinkAgent会对com.alibaba.druid.pool.DruidDataSource类的getConnection方法进行增强,根据是否是压测流量来返回 原始业务库连接 或者 影子库连接。这样业务数据就会和压测数据区分开。 不会造成污染。 

    个人注解版:https://github.com/zhaoyb/LinkAgent

  • 相关阅读:
    单例模式
    堆排序--leetcode 215
    二叉树--路径问题
    二叉树--前中后序两两结合构建二叉树
    CglibProxy
    JdkProxy
    git config --global http.sslVerify false
    PdfUtil
    idea中创建的文件类型无法识别
    sql优化
  • 原文地址:https://www.cnblogs.com/beyondbit/p/15457779.html
Copyright © 2020-2023  润新知