如何保证接口的幂等性

前面文章 程序开发中的幂等性了解了什么是幂等性以及幂等存在的必要性,今天我们来看一下如何实现接口的幂等。

通过数据库主键的唯一来实现

数据库唯一的主键主要是利用了数据库中的主键唯一约束性来实现。主键的唯一保证了数据插入的幂等性,他能够保障一张表中只能存在一条带有这一唯一主键的记录

这里需要注意的是,我们在使用数据库主键实现幂等时,该主键不是使用的数据库自增主键,而是用到了分布式ID来充当主键,这样就能够保证了在分布式系统中ID的全局唯一性了。

这种方案比较适用于新增及删除操作

通过数据库中的乐观锁来实现

利用数据库乐观锁的方案,我们可以提前在对应的表中添加字段,充当当前数据的版本标识,就可以每次对该表操作这条数据更新操作时,都会将这个版本标识作为一个匹配条件,值就是上次贷更新的数据库中版本标识的值。

这种方案适用于更新操作。但是需要在数据库业务表中增加额外的字段。

启用防重Token通行令牌

这种方案主要是针对用户的连续点击或者调用超时的重试。

前端在向后台发起接口请求的时候,首先向后端请求一个全局的Token,请求的时候携带上这个全局Token请求后端接口。

后台需要将这个Token作为key,用户的信息作为value存放到Redis中,如果Key存在并且value匹配,就执行操作,然后正常执行后面的逻辑,如果不存在对应的key或者value则会返回重复执行的操作。这样就会保证了幂等操作。

适用于新增、更新、删除操作。

好了,今天关于接口幂等性的实现方案就介绍到这里,欢迎大家留言交流。

也欢迎大家关注我的公众号《coder练习生》

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ybb_ymm

你的鼓励会是对我最大的支持

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值