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

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

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

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

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

处理方案:

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

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/188777.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ThinkPHP 2.x任意代码执行漏洞

任务一: 复现环境中的代码漏洞 任务二: 尝试利用代码执行漏洞读取服务器web目录下的文件列表。 任务一: 1.搭建环境: 2.在php环境下直接输入{${phpinfo}}测试代码片段 2.写入一句话木马,用antsword连接&#xff0…

【Java8系列07】Java8日期处理

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

安装nessus

此处建议使用香港服务器 docker pull ramisec/nessus docker run -itd --namenessus -p 18834:8834 ramisec/nessus docker exec -it nessus /bin/bash /nessus/update.sh 或下载拷贝插件包 docker cp all-2.0.tar.gz nessus:/nessus/ 更改Nessus镜像的默认密码 docker ex…

nodejs_vue+vscode美容理发店会员管理系统un1dm

按照设计开发一个系统的常用流程来描述系统,可以把系统分成分析阶段,设计阶段,实现阶段,测试阶段。所以在编写系统的说明文档时,根据系统所处的阶段来描述系统的内容。 绪论:这是对选题的背景,意…

IntelliJ IDEA详细完整安装教程

IntelliJ IDEA 是一款强大的Java集成开发环境,以下是安装和使用教程: 1. 下载IntelliJ IDEA:访问JetBrains官网(jetbrains.com),点击“Download”按钮,选择适合自己操作系统的版本进行下载。 2.…

停止在 TypeScript 中使用 any 类型

停止在 TypeScript 中使用 any 类型 TypeScript 是 Web 开发人员中最常用的编程语言之一。它具有出色的语言功能,允许我们轻松设计可扩展的应用程序。因此,开发人员倾向于在项目中选择 TypeScript 而不是 JavaScript。 然而,在使用 TypeScr…

Python【寻找重复的数字】

要求: 给定一个包含n1个整数的数组nums,其数字在1到n之间(包含1和n), 可知至少存在一个重复的整数,假设只有一个重复的整数, 请找出这个重复的数 代码如下: # 寻找重复数字…

【独家OD2023C卷真题】20天拿下华为OD笔试【排序】2023C-开源项目热榜【欧弟算法】全网注释最详细分类最全的华为OD真题题解

文章目录 题目描述与示例题目描述输入描述输出描述示例一输入输出说明 示例二输入输出说明 解题思路代码PythonJavaC时空复杂度 华为OD算法/大厂面试高频题算法练习冲刺训练 题目描述与示例 题目描述 某个开源社区希望将最近热度比较高的开源项目出一个榜单,推荐给…

Python全栈之基本数据类型详解

文章目录 1.注释2.输出3.变量4.命名规范5.变量的定义方式1.字符串类型2.数字类型3.List列表类型4.tuple 元组类型的定义5.Dict字典类型6.set集合类型7.数据类型转换8.自动类型转换9.强制类型转换关于Python技术储备一、Python所有方向的学习路线二、Python基础学习视频三、精品…

使用Dockerfile构建镜像遇到的异常分享:Failed to download metadata for repo ‘appstream‘

场景 使用自定义Dockerfile构建Redis镜像时,出现了异常 Dockerfile文件内容如下: FROM centos RUN ["yum","install","-y","gcc","gcc-c","net-tools","make"] WORKDIR /docke…

《opencv实用探索·七》一文看懂图像卷积运算

1、图像卷积使用场景 图像卷积是图像处理中的一种常用的算法,它是一种基本的滤波技术,通过卷积核(也称为滤波器)对图像进行操作,使用场景如下: 模糊(Blur): 使用加权平…

模糊C均值(Fuzzy C-means,FCM)聚类的可运行的python程序代码,复制即可用!!切记需要安装库 scikit-fuzzy

文章目录 前言一、安装库 scikit-fuzzy二、具体程序代码(复制可运行)三、结果展示总结 前言 模糊C均值(Fuzzy C-means,FCM)聚类是一种软聚类方法,它允许数据点属于多个聚类,每个数据点对所有聚…

16.Oracle数据库Row_number() over()函数排序使用方法

1.原始数据(部分) SELECT * FROM SCOTT.EMP ; 2.使用Row_number() over() 函数,排序 SELECT EMPNO,ENAME,SAL,DEPTNO,Row_number() over( order by sal) rs FROM SCOTT.EMP ; 根据工资排序并添加序号 3.使用Row_number() over() 函数,分组并排序 SELECT EMPNO,ENAME,SAL,DEPTN…

Python语言学习笔记之七(JOSN应用)

本课程对于有其它语言基础的开发人员可以参考和学习,同时也是记录下来,为个人学习使用,文档中有此不当之处,请谅解。 1、认识Json JSON (JavaScript Obiect Notation)是一种轻量级的数据交换格式,它是ECMAScript的一…

笔记二十五、React中setState是同步还是异步的?

在react18版本之前setState既可以是同步也可以是异步的 在Promise的状态更新、js原生事件、定时器中是同步的 在react的合成事件中,是异步的 在react18版本之后是setState异步的 代码 import React, {Component} from react;class Async extends Component {state …

计算机网络测试题

一 单项选择题(5分) 1、假设要发送的数据为101110,采用CRC的生成多项式是X31,试求应添加在数据后面的余数。(5分) 110 011(答案) 101 001 实际得分:5分 二 填空题(95分) 1、以下3个子地址块…

json.decoder.JSONDecodeError: Extra data: line 1 column 332 (char 331)

项目场景: 提示:扩充数据集时,同步修改json标签中的"imagePath"字段的值,出现json文件读写不一致问题。 采用open函数读写模式修改json文件字段。open(jsonF.json, r)。 问题描述 运行修改json文件报错:j…

防孤岛装置在光伏发电、燃气发电等新能源并网供电系统的应用

• AM5SE-IS防孤岛保护装置主要适用于35kV、10kV及低压380V光伏发电、燃气发电等新能源并网供电系统。 • 当发生孤岛现象时,可以快速切除并网点,使本站与电网侧快速脱离,保证整个电站和相关维护人员的生命安全**。 保护功能** ● 三段式过流…

数据记录的方法(轻量级)

一.文件操作 1.打开文件 fpopen(name[,mode[,buffereing]) 需要定义一个变量,再选择文件的打开参数。需要注意的是,如果参数选择不为w,w,a或a那么文件必须一开始就存在,否则会出现FileNotFoundError类型报错。此外为避免出现报错&#xff…

Linux git

1.Git 初识 不知道你⼯作或学习时,有没有遇到这样的情况:我们在编写各种⽂档时,为了防止文档丢失,更改失误,失误后能恢复到原来的版本,不得不复制出⼀个副本,⽐如: “报告-v1”? …