zoukankan      html  css  js  c++  java
  • 全链路压测 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

  • 相关阅读:
    责任链模式
    状态模式
    命令模式
    策略模式
    迭代器模式
    适配器模式
    装饰模式
    合成模式
    brew php 提示
    sarafi浏览器iframe跨域cookie无效的处理方案(笨方法,看官莫笑)
  • 原文地址:https://www.cnblogs.com/beyondbit/p/15457779.html
Copyright © 2011-2022 走看看