study-gray-flow 是一个基于 Spring Boot 的灰度流量管理后端服务,提供以下核心功能:
- 日志记录:记录请求链路日志,支持按 TraceId 查询完整调用链
- 请求回放:支持将历史请求重新发送到目标服务进行灰度验证
- 结果比对:对比原始请求和回放请求的响应差异
| 分类 | 技术 | 版本 |
|---|---|---|
| 语言 | Java | 21 |
| 框架 | Spring Boot | 3.2.x |
| 数据库 | H2 | 2.x |
| ORM | Spring Data JPA | 3.2.x |
| AOP | Spring AOP | - |
study-gray-flow/
├── src/main/java/com/bage/study/grayflow/
│ ├── GrayFlowApplication.java # 启动类
│ ├── controller/ # REST API 控制层
│ ├── service/ # 业务逻辑层
│ ├── repository/ # 数据访问层
│ ├── entity/ # 数据库实体
│ ├── dto/ # 数据传输对象
│ ├── aop/ # AOP 切面
│ └── config/ # 配置类
├── src/main/resources/
│ └── application.yml # 应用配置
└── pom.xml # Maven 配置
- 自动记录带有
@GrayLog注解的方法调用 - 记录请求参数、返回结果、执行时间
- 支持通过 TraceId 串联完整调用链
- 支持选择最近 N 条请求进行回放
- 回放请求发送到灰度目标服务
- 记录回放结果和差异对比
- 对比原始响应和灰度响应的差异
- 支持 JSON 结构的深度对比
- 生成结构化的差异报告
- JDK 21+
- Maven 3.8+
cd study-gray-flow
mvn spring-boot:run详细 API 文档:docs/api/API.md
详细设计说明:docs/design/DESIGN.md
测试用例说明:docs/test/TEST.md
