一、概念
幂等性, 通俗的说就是一个接口, 多次发起同一个请求, 必须保证操作只能执行一次比如:
订单接口, 不能多次创建订单
支付接口, 重复支付同一笔订单只能扣一次钱
支付宝回调接口, 可能会多次回调...redis(jedis、redisson)或zookeeper实现
状态机 -- 状态变更, 更新数据时判断状态
三、本文实现
本文采用第2种方式实现, 即通过redis + token机制实现接口幂等性校验...四、实现思路
为需要保证幂等性的每一次请求创建一个唯一标识 token, 先获取 token, 并将此 token存入redis, 请求接口时, 将此 token放到header或者作为请求参数请求接口...redis
@ApiIdempotent注解 + 拦截器对请求进行拦截
@ControllerAdvice全局异常处理
压测工具: jmeter
说明:
本文重点介绍幂等性核心实现, 关于springboot.../springboot/tree/wxw
六、代码实现
pom
<!