2026-10-25 22:32:47
接口幂等性是指对同一个接口进行一次或多次调用,其产生的影响与一次调用相同。在编程中,一个幂等操作的特点是其任意多次执行所产生的影响均与一次执行的影响相同。幂等函数或幂等方法,是指可以使用相同参数重复执行,并能获得相同结果的函数。这些函数不会影响系统状态,也不用担心重复执行会对系统造成改变。
前端未做限制:导致用户重复提交。
浏览器操作:使用后退、刷新或历史记录重复提交表单。
网络波动:引起重复请求。
超时重试:导致接口重复调用。
定时任务:设置不合理导致数据重复处理。
消息队列:消息重复消费。
提交按钮处理:点击后置灰或增加loading状态。
页面重定向(PRG):采用POST-REDIRECT-GET模式,避免重复提交。
先select后insert + 唯一索引冲突:在保存数据前先查询,若不存在则插入,并添加唯一索引防止重复。
建去重表:适用于业务中允许重复数据但在特定环节不允许的情况,通过创建去重表并添加唯一索引实现。
使用悲观锁:在交易场景中,通过锁定用户行数据确保同一时刻只有一个请求能处理。
使用乐观锁:基于版本标识进行操作,每次更新时检查版本号,确保数据一致性。
根据状态机:在业务流程有状态流转时,通过状态机确保每次操作都是基于当前状态进行。
使用分布式锁:通过Redis等分布式锁机制,确保同一时间只有一个请求能处理。
基于token机制:客户端先申请token,再次请求时携带token进行校验。