Jvm-Sandbox-Repeater架构

一、Repeater整体架构

1.1 Jvm-Sandbox-Repeater简介

Jvm-Sandbox-Repeater是一个基于Jvm-Sandbox的 服务端录制/回放 通用解决方案

1.1.1 服务端录制回放的概念

Jvm-Sandbox-Repeater架构_第1张图片
Jvm-Sandbox-Repeater架构_第2张图片Jvm-Sandbox-Repeater架构_第3张图片

1.1.2 Repeater核心原理

Jvm-Sandbox-Repeater架构_第4张图片

1.1.3 名词解释

  • 录制:把一次请求的入参、出参、下游RPC、DB、缓存等序列化并存储的过程
  • 回放:把录制数据还原,重新发起一次或N次请求,对特定的下游节点进行MOCK的过程
  • 入口调用:入口调用一般是应用的流量来源,比如http/dubbo,在调用过程中录制调用入参、返回值。回放时作为流量发起和执行结果对比依据
  • 子调用:子调用是调用执行过程中某次方法调用,区别于入口调用,该调用不作为回放发起录制时会记录该方法的入参、返回值,回放时用该返回值进行MOCK
  • MOCK:在回放时,被拦截的子调用不会发生真实调用,利用Sandbox的流程干预能力,将录制时的返回值直接返回

1.1.4 Repeater特性

  • 无侵入:无需修改代码,无需重启jvm
  • 通用性:支持所有JVM类型语言
  • 可插拔:随时启停、随时卸载
  • 扩展性:简单几行代码即可适配一个常用插件

1.1.5 Repeater应用场景

  • 业务回归
  • 架构感知
  • 问题排查
  • 压测流量
  • 线上监控

Jvm-Sandbox-Repeater架构_第5张图片

二、插件开发&使用演示

2.1 repeater-console体验Jvm-Sandbox-Repeater架构_第6张图片

三、问题解答

3.1 对性能的影响

结论:线上采样率控制在一定范围内,性能影响可接受
Jvm-Sandbox-Repeater架构_第7张图片

3.2 推荐使用agent方式还是attach方式

针对录制回放场景,推荐使用attach方式启动,更灵活,更可控,需要注意attach瞬间的影响
Jvm-Sandbox-Repeater架构_第8张图片

3.3 如何动态推送配置

配置变更后,用户主动推送,配置实时生效,无需重启
Jvm-Sandbox-Repeater架构_第9张图片

3.4 如何快速搭建测试平台

直接部署 repeater-console 到生产环境,把 repeater-module 分发到目标机器,录制后回放到指定环境
Jvm-Sandbox-Repeater架构_第10张图片
相关地址:
https://github.com/alibaba/jvbm-sandbox
https://github.com/alibaba/jvm-sandbox-repeater

你可能感兴趣的:(SpringCloud)