前言

上一篇聊到了项目申报和技术调研评估的话题,每个公司采用的技术栈、技术同学的偏好以及具体的业务特性都不一样,所以最终落地阶段的技术方案也会有所不同。

这篇文章,来聊聊业内常见的一些数据隔离和标记透传的技术方案以及测试如何接入验证。

常见的技术方案

全链路压测要落地,最大的挑战是数据安全隔离,业内对于数据隔离,目前已知的技术方案有如下几种:

底层框架

底层框架改造是目前业内较为常用的一种技术手段,它通过提供一个基础的服务或者框架,让业务应用和中间件接入即可。

在压测时候,在请求头带入特殊的压测标记,即可区分正常的业务流量和压测流量来进行透传,涉及到的中间件和数据库,也会通过路由的方式透传下去。

这样做的优点在于:业务几乎无需改造,侵入性低,即插即用的方式也更为灵活。

字节码增强

字节码增强是Java的一种特性,JVM针对各种操作系统、平台都进行了定制。

无论在什么平台,都可以编译生成固定格式字节码(.class文件)供JVM使用。之所以被称之为字节码,是因为字节码文件由十六进制值组成,而JVM以两个十六进制值为一组,即以字节为单位进行读取。

在Java中一般是用javac命令编译源代码为字节码文件,一个.java文件从编译到运行如下图所示:

全链路压测(3):技术改造和测试验证-LMLPHP

字节码增强技术是一类对现有字节码进行修改或者动态生成全新字节码文件的技术,它可以在运行时对JVM中的类进行修改并重载,示意图如下:

全链路压测(3):技术改造和测试验证-LMLPHP

Java的字节码技术可以应用的场景很多,比如:

  1. Mock:测试时候对某些服务做Mock;
  2. 热部署:不部署服务而对线上服务做修改,打点、增加日志等操作;
  3. 诊断工具:比如arthas就是利用Instrument,无侵入跟踪正在运行的JVM,监控到类和方法级别的状态信息;
12-26 16:56