redisautoidempotentspringbootstarter一个高并发下接口幂等性处理的自定义starter
我的具体实现可以浏览我的码云bwstudio-common
幂等处理的流程图与原来的轮子相同,就直接引入了
redis-auto-idempotent-spring-boot-starter的使用及其简单 只需要引入依赖,在配置文件中设置开启两个参数即可,如果启用成功,会在启动中看到下列输出:
redis-auto-idempotent-spring-boot-starter使用说明
- 在你的项目中引入依赖
<dependency> <groupId>com.bwstudio.common</groupId>
<artifactId>redis-auto-idempotent-spring-boot-starter</artifactId>
<version>0.0.1</version>
</dependency>
- 在spring boot项目的配置文件中加入一下两个配置, 比如application.properties中(yml文件请自行转换)
开启自动幂等性处理拦截器
redis-auto-idempotent.enabled=false
设置幂等性token的自动过期时间,单位:毫秒
redis-auto-idempotent.token-expire-time-in-ms=30000
- 在控制器方法上加上@AutoIdempotent, 比如
@RestControllerpublic class TestIdempotenceController {
@AutoIdempotent
@PostMapping("/test")
public String testIdempotence() {
return "Hello World";
}
}
- 启动demo
首先获取幂等性token,引入redis-auto-idempotent-spring-boot-starter会随你的项目自动启动一个控制器来提供获取幂等性token的api
GET localhost:8080/auto-idempotent/token
这时会你的spring项目连接的redis服务器中生成一个前缀为"autoidempotent_"的为幂等性请求服务的token,例如:
autoidempotent_B543E217C8014F8EAA109686D7903040
携带此token在demo的post请求头或请求体中设置参数 IDEMPOTENT_TOKEN 的值为上面的值
发起post请求到test测试效果
POST localhost:8080/test
第一次携带幂等性token发起请求会成功返回
"Hello world"
继续重复发起请求会提示
"请求失败, 重复的提交"
以上是 redisautoidempotentspringbootstarter一个高并发下接口幂等性处理的自定义starter 的全部内容, 来源链接: utcz.com/z/516252.html