重復訂單解決方案


問題描述:用戶下訂單購買,因為各種原因(網絡卡,快遞點擊等)重復提交2個或者以上一模一樣的訂單,由於是同時提交的,第一個訂單執行扣款生成訂單未完成時候,第二個已經進來了,導致付一筆錢購買了2次或多次商品 解決方案:

1、緩存lock,緩存此用戶的操作行為,注意緊緊緩存操作的標志,下次進入判斷此標志是否存在,存在即不進入數據庫事務

2、應用程序application lock,和1相比,會阻塞其他用戶的正常行為

3、模仿銀行扣款機制,數據表建一個隨機唯一標志,每次請求帶上這個標志,操作的同時進行修改這個標志

4、應用程序生成唯一標志,數據庫做字段的唯一索引

5、扣款為負數的事務進行回滾

6、使用事務的隔離級別

7、使用redis的incr控制用戶的並發數,memcache的add也可以實現這種效果,memcached借助cas


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM