接口幂等性总结

简介: 接口幂等性是什么? 我们该在什么样的场景下去使用我们的接口幂等性

什么是接口幂等性

首先我们先了解一下什么是接口幂等性,接口幂等性指的是在一段时间内接口请求次数不得大于一次.


接口幂等性的使用场景

在某些场景下需要接口幂等性的支持,比如说我们的支付场景,订单场景等等,如果我们点击了多次支付按钮,是不是就会扣很多次钱呢,显而易见,这是非常不合理的情况,所以我们需要通过接口幂等性来保证我们用户能有一个比较良好的体验.


接口幂等性的实现思路

我们的接口幂等性实现,一般会侧重于新增,修改这2方面,查询和删除其实本身就是天然幂等性的,前者可以频繁调用,因为本身他就是一个无状态的,不会修改自己的任何业务属性而删除他只能删除一次,我们会通过查询列表或者校验是否存在来规避这个问题.

这里商量一下接口幂等性的问题解决思路,比如说你要实现一个支付接口,在这种场景下redis就可以解决,可以上游生成一个requestId,一定的时间内的自动过期,时间一长就会变成另外一个,如果业务执行结束,就把key存到redis里,第二次请求进来就会去redis中查询是否存在这个requestId,如果存在的话,那么就说明在规定范围时间内已经执行过一次操作了,直接返回用户操作重复信息.


RequestId的其他优势

在这里我们的requestId其实也可以当做我们日志定位的小技巧,我们可以通过cat日志,然后grep相关的id来查询那条请求对应的上下文,进而快速的对问题进行一个定位,特别是在复杂场景下,系统出现了问题,我们可以对问题进行快速定位,复现乃至解决.

目录
相关文章
|
5月前
接口幂等性设计
接口幂等性设计
54 1
|
5月前
接口幂等性注解@RepeatSubmit
接口幂等性注解@RepeatSubmit
202 1
|
5月前
|
NoSQL 关系型数据库 MySQL
接口防刷 && 接口幂等性问题
接口防刷 && 接口幂等性问题
70 0
|
前端开发 NoSQL JavaScript
常见接口和服务幂等性问题及解决方案
常见接口和服务幂等性问题及解决方案
384 0
|
5月前
|
存储 缓存 安全
接口的幂等性
接口的幂等性
62 0
|
2月前
|
缓存 NoSQL Java
接口幂等该如何设计和实现
本文探讨了程序开发中常见的重复操作问题,如多次点击生成多余订单或支付、RPC调用失败后的重试机制滥用及非法重复请求等。通过接口幂等性设计可有效解决这类问题,确保相同请求多次执行结果一致无副作用。文章详细解释了幂等性的概念及其重要性,并提供了具体的设计与实现方法,包括使用唯一标识符、设计幂等操作、事务处理及缓存策略。此外,还讨论了实现幂等性接口所带来的好处,如并发请求处理、失败请求管理及系统集成等,并提出了验证接口幂等性的策略。通过这些技术和方法的应用,可以显著提升系统的稳定性和用户体验。
|
2月前
|
SQL 索引
分布式之接口幂等性
分布式之接口幂等性
37 2
|
4月前
|
数据库 API 网络架构
浅谈应用接口的幂等性
【6月更文挑战第2天】本文介绍幂等性是计算和网络通信中的重要概念,确保同一操作执行多次不会改变结果。在数据库操作中,查询、删除(同一数据)和特定更新是幂等的,而插入和累加更新不是。幂等性和安全性(如GET、HEAD等方法)确保多次请求无副作用,对涉及金钱的操作尤为重要。
51 0
|
5月前
|
API
什么是接口幂等
什么是接口幂等
130 0
|
5月前
|
存储 缓存 数据库
接口幂等有哪些实现方式
接口幂等有哪些实现方式
39 0