zoukankan      html  css  js  c++  java
  • 重复订单解决方案

    问题描述:用户下订单购买,因为各种原因(网络卡,快递点击等)重复提交2个或者以上一模一样的订单,由于是同时提交的,第一个订单执行扣款生成订单未完成时候,第二个已经进来了,导致付一笔钱购买了2次或多次商品 解决方案:

    1、缓存lock,缓存此用户的操作行为,注意紧紧缓存操作的标志,下次进入判断此标志是否存在,存在即不进入数据库事务

    2、应用程序application lock,和1相比,会阻塞其他用户的正常行为

    3、模仿银行扣款机制,数据表建一个随机唯一标志,每次请求带上这个标志,操作的同时进行修改这个标志

    4、应用程序生成唯一标志,数据库做字段的唯一索引

    5、扣款为负数的事务进行回滚

    6、使用事务的隔离级别

    7、使用redis的incr控制用户的并发数,memcache的add也可以实现这种效果,memcached借助cas

  • 相关阅读:
    一些前端面试题
    CSS高度塌陷问题解决方案
    闭包
    作用域
    JS的预编译过程
    小技巧集合
    序选择器
    HTML初始结构
    剖析Vue原理&实现双向绑定MVVM
    Safari 3D transform变换z-index层级渲染异常
  • 原文地址:https://www.cnblogs.com/Leo_wl/p/13452570.html
Copyright © 2011-2022 走看看