zoukankan      html  css  js  c++  java
  • 关于幂等性以及怎么实现幂等性

    概念

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

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

    实现方案

    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

  • 相关阅读:
    css 如何隐藏滚动条
    点击元素之外隐藏
    css3 box-shadow
    video常用功能
    input依次输入密码
    响应式布局基础
    数据库
    面试题
    pandas
    Numpy
  • 原文地址:https://www.cnblogs.com/kbian/p/11797951.html
Copyright © 2011-2022 走看看