简介
基于拦截 HTTP 请求的,日志记录与重试补偿的工具。
特点
- 上手快,学习成本低
- 集成简单,代码侵入小
- 可选重试补偿
适用范围
- RestTemplate
- Feign
- ServletRequest (被请求)
简单示例
@Resource
private RestTemplate restTemplate;
// 普通 RestTemplate 请求
String result = restTemplate.exchange("url", HttpMethod.GET, null, String.class);
// 使用 LogContext 包装后的 RestTemplate 请求
String result2 = LogContext.log().execute(() -> {
return restTemplate.exchange("url", HttpMethod.GET, null, String.class);
});
重试补偿
// log() => retry() 以后,就会生成重试任务
String result = LogContext.retry().execute(() -> {
return restTemplate.exchange("url", HttpMethod.GET, null, String.class);
});
其他
- spring-boot-demo 地址
- spring-boot-demo 依赖 H2 数据库,启动后可通过浏览器打开 http://localhost:12345/h2-console 访问数据库。
- 考虑到 H2 数据库,重试补偿任务调度。所以没有使用 Junit 等测试用例,使用 Controller 作为入口。