redisautoidempotentspringbootstarter一个高并发下接口幂等性处理的自定义starter

编程

我的具体实现可以浏览我的码云bwstudio-common

幂等处理的流程图与原来的轮子相同,就直接引入了

redis-auto-idempotent-spring-boot-starter的使用及其简单 只需要引入依赖,在配置文件中设置开启两个参数即可,如果启用成功,会在启动中看到下列输出:

redis-auto-idempotent-spring-boot-starter使用说明

  1. 在你的项目中引入依赖

        <dependency>

<groupId>com.bwstudio.common</groupId>

<artifactId>redis-auto-idempotent-spring-boot-starter</artifactId>

<version>0.0.1</version>

</dependency>

  1. 在spring boot项目的配置文件中加入一下两个配置, 比如application.properties中(yml文件请自行转换)

开启自动幂等性处理拦截器

redis-auto-idempotent.enabled=false

设置幂等性token的自动过期时间,单位:毫秒

redis-auto-idempotent.token-expire-time-in-ms=30000

  1. 在控制器方法上加上@AutoIdempotent, 比如

@RestController

public class TestIdempotenceController {

@AutoIdempotent

@PostMapping("/test")

public String testIdempotence() {

return "Hello World";

}

}

  1. 启动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

回到顶部