关于幂等性以及怎么实现幂等性

概念

  我们实际系统中有很多操作,是不管做多少次,都应该产生一样的效果或返回一样的结果。

  例如:前端重复提交选中的数据,应该后台只产生对应这个数据的一个反应结果。等等很多重要的情况,这些逻辑都需要幂等的特性来支持。

 

实现方案

  1. 数据库唯一索引,防止新增脏数据。
  2. token机制,防止重复提交。
    数据提交前要向服务的申请token,token放到redis,token有效时间 提交后后台校验token,同时删除token,生成新的token返回。
  3. 数据库悲观锁。
    select * from account where name=”xxx” for update
  4. 数据库乐观锁。
    update account set price=100,version=2 where version=1
  5. 分布式锁
    zookeeper或者redis都可实现。
  6. 对外第三方api。一般要求提供唯一字段组成唯一索引。

 

 

https://juejin.im/entry/57fec6850e3dd90057e1e47e

https://zzzzbw.cn/post/19

 

posted @ 2019-11-05 13:47  得记点什么了  阅读(2899)  评论(0编辑  收藏  举报