最近从网上看到了接口幂等性的实现,实现方案有乐观锁、悲观锁、分布式锁、加数据唯一索引,设置token。
有两种实现方式我不太明白,就是悲观锁和分布式锁这两种方案。
我了解的幂等性是,一个接口,多次发送同一个的请求,必须保证操作只执行一次。幂等性与语言和是不是分布式系统无关,与操作有关。
我又了解到悲观锁和分布式锁是解决并发问题的一种解决方案,为什么网上有的人说可以解决幂等性问题呢?有点搞不懂。
以悲观锁为例子:
我A用户账户有300块钱,现在要转100块钱到B用户账户上,我不小心点了两次转账按钮,或者是应为其他原因而导致请求发送了两次,这时悲观锁只能保证每次只处理一个请求,处理完一个请求再处理第二个请求,而并不能保证操作只执行一次,即只执行一个请求。这能保证接口幂等性吗?不明白,希望各位解答。