当前位置: 首页 > article >正文

接口幂等+防重复提交+失败重试

1、接口幂等
接口幂等性就是用户对同一接口发起了一次或多次请求之后,对数据的影响是不变的,不会因为多次请求而产生不同的结果。

实现方案:
调用方传:参数+UUID,当接口请求参数和UUID生成key,存到Redis状态为处理中,当处理完成后,将状态置为失败或者成功,并且把接口UUID持久化到数据库,并且设置redis的key过期时间,因为有可能因为处理中时线程中断,没来得及设置redis的状态为失败。所以要加个过期时间,第二次请求先查数据在确定是否生成新的交易。

这个UUID,由前端页面提供,最好是页面有轮动UUID都重新生成。

2、重复提交:是指在一段时间内,只能提交一次请求。

用户重复提交:一般是指用户填写好表单信息后,由于响应较慢,从而多次点击提交按钮。

处理方案:
相同的参数,请求进redis,如果几秒内多次请求直接拒绝掉,设置过期时间,比如最多相同key只能2秒请求一次。这样就可以防止重复提交数据了。

3、失败重试:指分布式项目中,被调用方出现超时或异常时,触发了调用方的重试补偿机制。

如果对于失败的情况,明确失败,可以手动清楚redis中的key。其实和幂等类似


http://www.kler.cn/a/147698.html

相关文章:

  • maven的optional选项说明以及具体应用
  • MySQL-初识数据库
  • How to install rust in Ubuntu 24.04
  • Java 包装类
  • Vue 组件通信及进阶语法
  • 前端面试笔试(二)
  • 【01】ES6:ECMAScript 介绍
  • 获取WordPress分类链接
  • 基于springboot+maven的个人理财管理系统
  • 打造企业AI数字人专属IP的重要性
  • Unity播放网络视频
  • 一、TIDB基础
  • 部署Jenkins
  • Spring框架体系及Spring IOC思想
  • Ruoyi报‘com.ruoyi.system.api.RemoteLogService‘ that could not be found.
  • 典型的SAST支持检测标准
  • C语言:写一个函数,实现3*3矩阵的转置(指针)
  • 美团小游戏rpk包对接流程小记
  • 戴上HUAWEI FreeBuds Pro 3, 近离城市喧嚣,尽情享受无损音质在耳边漫游
  • 【Python】itertools模块,补充:可迭代对象、迭代器
  • Linux CentOS7 LVM
  • python通过numpy进行排序
  • 微服务--02--Nacos注册中心
  • Android RGB转YUV的算法
  • 网站定制开发主要分类有哪些|企业 app 软件小程序定制
  • ELK+kafka+filebeat企业内部日志分析系统