首页 > 其他分享 >如何保证接口幂等性

如何保证接口幂等性

时间:2023-01-04 16:35:37浏览次数:101  
标签:重复 接口 重试 如何 保证 机制 执行

幂等性原本是数学上的概念,用在接口上就可以理解为:同一个接口,多次发出同一个请求,必须保证操作只执行一次,或者执行多次后结果是一样的。

为什么会产生接口幂等性问题?

1 用户重试

2 页面重复刷新,多次提交表单

3定时任务重复执行

4 消息重试

5 使用了失效或超时重试机制(Nginx重试、RPC重试或业务层重试等)

6 网络原因等

如何保证接口幂等性?

解决办法分为两个方向,一个方向是客户端防止重复调用,一个是服务端进行校验。

1按钮只可操作一次

2 token机制

3 利用数据库唯一索引机制,当数据重复时,插入数据库会抛出异常,保证不会出现脏数据

4 乐观锁机制,如果更新已有数据,可以进行加锁更新,也可以设计表结构时使用乐观锁,通过version来做乐观锁,这样既能保证执行效率,又能保证幂等

5 分布式锁

6 使用状态机

7建防重表

8 使用全局唯一号

标签:重复,接口,重试,如何,保证,机制,执行
From: https://www.cnblogs.com/labimeilexin/p/17025265.html

相关文章