重複訂單解決方案

問題描述:用戶下訂單購買,由於各類緣由(網絡卡,快遞點擊等)重複提交2個或者以上如出一轍的訂單,因爲是同時提交的,第一個訂單執行扣款生成訂單未完成時候,第二個已經進來了,致使付一筆錢購買了2次或屢次商品 解決方案:redis

一、緩存lock,緩存此用戶的操做行爲,注意牢牢緩存操做的標誌,下次進入判斷此標誌是否存在,存在即不進入數據庫事務數據庫

二、應用程序application lock,和1相比,會阻塞其餘用戶的正常行爲緩存

三、模仿銀行扣款機制,數據表建一個隨機惟一標誌,每次請求帶上這個標誌,操做的同時進行修改這個標誌網絡

四、應用程序生成惟一標誌,數據庫作字段的惟一索引併發

五、扣款爲負數的事務進行回滾app

六、使用事務的隔離級別memcached

七、使用redis的incr控制用戶的併發數,memcache的add也能夠實現這種效果,memcached藉助cas索引

相關文章
相關標籤/搜索