浅谈接口幂等性 前言 幂等性,是开发人员在日常开发中必须要考虑的,尤其是转账、支付等涉及金额交易的场景,如果出现幂等性的问题,造成的后果是非常严重的。 本文将分享一下什么是幂等性以及如何保证幂等性。 什么是幂等性 幂等(idempotent、idempotence)是一个数学与计算机学概念,常见于抽象代数中。 在编程中一个幂等操作的特点是其任意多次执行所产生的影响均与一次执行的影响相同。幂等函数,或幂等方法,是指可以使用相同参数重复执行,并能获得相同结果的函数。这些函数不会影响系统状态,也不用担心重复执行会对系统造成改变。 幂等性产生原因 前端未做限制,导致用户重复提交使用浏览器后退,或者按F5刷新,或者使用历史记录,重复提交表单网络波动,引起重复请求超时重试,引起接口重复调用定时任务设置不合理,导致数据重复处理使用消息队列时,消息重复消费 如何保证幂等性 1.前端处理 提交按钮置灰,或者增加loading页面重定向(PRG),PRG模式即,当用户进行表单提交时,会 2.先select后insert + 唯一索引冲突 在保存数据前,我们需要先select一下数据是否存在。如果数据已存在,则返回失败(具体操作视业务情况而定),如果数据不存在,则执行insert操作。 但在高并发的场景下,可能会出现两个请求select的时候,都没有查到数据,然后都执行了insert操作,所以此时会有重复数据产生,因此在数据库中,我们需要添加唯一索引来保证幂等。 流程图如下:






2024最新激活全家桶教程,稳定运行到2099年,请移步至置顶文章:https://sigusoft.com/99576.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。 文章由激活谷谷主-小谷整理,转载请注明出处:https://sigusoft.com/69447.html