1. 程式人生 > >秒殺場景,非同步扣減庫存解決超賣的問題

秒殺場景,非同步扣減庫存解決超賣的問題

1、限流
2、將庫存放到redis中、接收使用者請求的時候。從redis取庫存,判斷庫存量是否大於本次訂單購買量
庫存大於本次購買量:扣減redis中的庫存、並且將訂單資訊推送到MQ;
庫存小於本次購買量:直接返回、數量不足。
3、MQ消費者獲取訊息:
1):更新資料庫庫存(樂觀鎖)
2):生成訂單資訊,扣除使用者賬戶的訂單金額(餘額不足的話、將本次購買量加回到庫存裡)
3):非同步通知使用者購買結果。

Redis只是解決效能問題,資料庫才是解決庫存一致性問題