前面文章 程序开发中的幂等性了解了什么是幂等性以及幂等存在的必要性,今天我们来看一下如何实现接口的幂等。
通过数据库主键的唯一来实现
数据库唯一的主键主要是利用了数据库中的主键唯一约束性来实现。主键的唯一保证了数据插入的幂等性,他能够保障一张表中只能存在一条带有这一唯一主键的记录
这里需要注意的是,我们在使用数据库主键实现幂等时,该主键不是使用的数据库自增主键,而是用到了分布式ID来充当主键,这样就能够保证了在分布式系统中ID的全局唯一性了。
这种方案比较适用于新增及删除操作
通过数据库中的乐观锁来实现
利用数据库乐观锁的方案,我们可以提前在对应的表中添加字段,充当当前数据的版本标识,就可以每次对该表操作这条数据更新操作时,都会将这个版本标识作为一个匹配条件,值就是上次贷更新的数据库中版本标识的值。
这种方案适用于更新操作。但是需要在数据库业务表中增加额外的字段。
启用防重Token通行令牌
这种方案主要是针对用户的连续点击或者调用超时的重试。
前端在向后台发起接口请求的时候,首先向后端请求一个全局的Token,请求的时候携带上这个全局Token请求后端接口。
后台需要将这个Token作为key,用户的信息作为value存放到Redis中,如果Key存在并且value匹配,就执行操作,然后正常执行后面的逻辑,如果不存在对应的key或者value则会返回重复执行的操作。这样就会保证了幂等操作。
适用于新增、更新、删除操作。
好了,今天关于接口幂等性的实现方案就介绍到这里,欢迎大家留言交流。
也欢迎大家关注我的公众号《coder练习生》