码迷,mamicode.com
首页 > 其他好文 > 详细

接口的幂等性如何设计?

时间:2021-04-22 16:19:38      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:信息   mysql   悲观锁   失败   一个   执行   http   索引   解决   

需要使用幂等的场景

  • 前端重复提交
  • 接口超时重试
  • 消息队列重复消费

解决方案

  1. token机制:①客户端请求获取token,服务端生成一个唯一ID作为token存在redis中;②客户端第二次请求时携带token,服务端校验token成功则执行业务操作并删除token,服务端校验token失败则表示重复操作。  
  2. 基于mysql:①新建去重表;②服务端将客户端请求时提交的部分信息放入表中,其中有唯一索引字段;③成功插入则没有重复请求,插入失败则重复请求。
  3. 基于redis:①客户端请求服务端拿本次请求的标识字段;②服务端将标识字段以setnx方式存入redis并设置过期时间;③设置成功则说明非重复操作,设置失败则表示重复操作。
  4. 状态机、悲观锁、乐观锁等。

以上参考:https://mp.weixin.qq.com/s/74QYS_5K1c-XK8tsTNkb4g

接口的幂等性如何设计?

标签:信息   mysql   悲观锁   失败   一个   执行   http   索引   解决   

原文地址:https://www.cnblogs.com/smallzhen/p/14687483.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!