接口幂等性介绍
发布日期:2021-05-07 02:38:26 浏览次数:18 分类:精选文章

本文共 506 字,大约阅读时间需要 1 分钟。

文章目录

比如我们遇到了一个提交订单的例子

在这里插入图片描述

  • 假设模拟网速很慢,它点击了多次提交订单,我们数据库的订单被插入了多份,订单的防止重复提交是非常重要的(无论是表单之间的提交,还是微服务之间的相互调用,都可能出现多次提交)专业术语就是要保证提交订单的幂等性(提交一次和提交一百次结果都是一样的),接下来我们就来讨论一下接口幂等性问题

1:什么是幂等性?

在这里插入图片描述

2: 哪些情况需要防止?

在这里插入图片描述

3: 什么情况下需要幂等?

在这里插入图片描述

4:幂等解决方案

  1. token机制

我们来到一个页面给页面放上一个令牌(假设这个令牌就是123456),我们点击提交订单就是会带上这一个令牌,服务器提前存储了这个令牌就是123456,页面提交来的令牌和服务器的一模一样,就算是验证通过了;只要我们的验证通过,服务器就会把这个令牌删除;如果下一次还要在进行重复提交,我们的服务器已经把原来的令牌(123456)给删除了,所以验证就会不通过;就可以保证幂等性

在这里插入图片描述
在这里插入图片描述

  • 注意:从上面的危险性可知:我们一定要保证从redis获取的令牌,和前端发送到服务端的令牌进行对比,还有删除令牌,这三个操作一定是原子性的
  1. 各种锁机制

在这里插入图片描述

在这里插入图片描述
3. 各种唯一约束

在这里插入图片描述

4. 防重表

在这里插入图片描述

5. 全局请求的唯一id

在这里插入图片描述

上一篇:电商项目——分布式事务——第十三章——中篇
下一篇:电商项目——订单服务——第十二章——中篇

发表评论

最新留言

网站不错 人气很旺了 加油
[***.192.178.218]2025年03月24日 14时18分04秒