成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

高并發秒殺系統如何實現正確的扣減庫存?

開發 架構
為了方便大家的理解,我們先來討論下扣減庫存有哪幾種方式。總體來說,扣減庫存可以分為:下單減庫存、付款減庫存和預扣庫存三種。

[[419555]]

在【精通高并發系列】的《實踐出真知:全網最強秒殺系統架構解密!》一文中,冰河詳細的闡述了高并發秒殺系統的架構設計,也簡單提到了如何扣減商品的庫存。

也許不少小伙伴會問:扣減商品的庫存很簡單啊,用戶下單的時候扣除對應的商品庫存不就行了嗎?有那么難嗎?

確實,理論上就是用戶下單后,減去商品的庫存就完事了。但是,如果你的系統流量很大,并發度非常高,比如淘寶的雙十一,有一款爆款商品參加了活動,庫存只有1000件,有幾十萬上百萬用戶搶購,商品售完1000件為止,一件不能多,一件也不能少。你還會覺得簡單嗎?搞不好就會出現“超賣”的情況,后果就會很嚴重了。

今天,我們就一起來簡單討論下在高并發秒殺系統中,如何正確的扣減商品的庫存。

扣減庫存的方式

為了方便大家的理解,我們先來討論下扣減庫存有哪幾種方式。總體來說,扣減庫存可以分為:下單減庫存、付款減庫存和預扣庫存三種。

下單減庫存

我們先來說說下單扣減庫存的方式,這種方式很好理解,就是用戶提交訂單后,在商品的總庫存中減去用戶購買的商品數量。這種減庫存的方式是最簡單的,也是對商品庫存控制的最準確的。但是,經常會碰到的問題就是:用戶提交訂單之后,未必就會付款。

這就會存在一個問題:惡意刷單。試想,你作為一個商家參與了淘寶的雙十一秒殺活動,如果淘寶平臺扣減庫存的方式為下單減庫存,你的競爭對手得知你參與了雙十一秒殺活動,他們通過惡意下單的方式將你參與秒殺的商品全部下單,讓你的庫存減為0,但是他們并不會付款。那么你參與雙十一秒殺的商品就不能正常售賣了。

此時的你會是什么樣的心情呢?這就是下單減庫存存在的問題。

付款減庫存

既然下單減庫存存在問題,我們再來看看付款減庫存。庫存減庫存就是用戶提交訂單后,并不會立刻扣減商品的庫存。而是等到用戶真正付款后才會扣減庫存。這種方式經常遇到的問題就是:用戶明明下單成功了,卻不能付款。 原因就是用戶下單時,不會扣減庫存,而是等到真正付款后才會扣減庫存,當某個用戶下單后,執行付款操作時,相應的商品可能已經被其他人買走了。

付款減庫存有可能會造成另一個更為嚴重的后果:**庫存超賣。**這主要就是用戶提交訂單的時候不會扣減庫存,造成用戶成功下單的訂單數量可能會遠遠大于商品的庫存數量。

預扣減庫存

預扣減庫存比起前面兩種扣減庫存的方式,相對來說復雜一些。用戶提交訂單后,為用戶預留購買數量的商品庫存,例如預留10分鐘,超過10分鐘,則釋放為用戶預留的庫存,其他的用戶可以繼續下單購買。

用戶下單預扣減庫存之后,在付款時,系統會檢驗對應的訂單是否存在有效的預留庫存,如果存在,則真正扣減庫存并付款。如果不存在,則會再次嘗試預扣減庫存。如果庫存不足,則不再付款。如果預扣減庫存成功,則真正扣減庫存并付款。

那么,預扣減庫存是否能夠解決前面兩種扣減庫存的問題呢?

答案是,并沒有徹底解決。

例如,對惡意下單來說,雖然將有效的付款時間控制在一小段時間內,但是惡意用戶完全有可能在一段時間后再次下單。也有可能會在開始下單時,就會一次性選擇所有的庫存下單。仍然不能徹底解決問題。

那有沒有什么辦法解決這些問題呢?我們繼續往下看。

扣減庫存問題的解決

針對惡意用戶下單的情況,我這里簡單羅列了如下幾種解決方案:

(1)我們可以為經常提交訂單之后不付款的用戶添加對應的標簽,當這些用戶下單時,進行特殊處理,例如不扣減庫存等(具體可以根據需求確定)。

(2)在秒殺期間,為商品設置同一個人的最大購買件數,比如最多購買2件。

(3)對不付款重復下單的操作進行限制,例如,對同一商品下單時,首先校驗當前用戶是否存在未付款的訂單,并且訂單中的商品與再次下單的商品是同一款商品,則提示先讓用戶付款后再提交訂單等。

針對庫存超賣的情況,我這里簡單羅列了如下幾種解決方案:

(1)通過補貨解決。

(2)用戶下單時提示庫存不足。

秒殺系統如何扣減庫存?

也許有不少小伙伴會說高并發秒殺系統會采用預扣減庫存的方式,其實,在真正的高并發、大流量場景下,大部分秒殺系統會采用 下單減庫存 的方式。

在下單扣減庫存的業務場景中,需要保證大流量、高并發下商品的庫存不能為負。

這里,我們可以通過如下方案解決商品庫存不能為負的問題、

(1)在扣減庫存后,通過在應用程序的事務中判斷商品庫存是否為負數,如果變成了負數,則回滾事務不再扣減庫存。

(2)在數據庫中設置庫存字段為無符號整數,從數據庫層面保證無法出現負數的情況。 

說了這么多,原來在高并發、大流量的秒殺系統中,實現正確的扣減商品的庫存確實不是一件容易的事情呀!

責任編輯:武曉燕 來源: 冰河技術
相關推薦

2024-09-10 10:42:27

2022-09-19 09:49:17

MCube網絡引擎

2018-09-15 04:59:01

2025-02-20 00:01:00

2025-03-11 08:36:52

高并發場景性能

2020-10-14 07:20:53

高并發

2024-09-23 08:03:13

2024-10-10 08:32:28

Redis高并發Lua

2024-07-03 11:01:55

2025-06-27 02:00:00

Spring高并發庫存

2024-08-01 11:38:40

2025-05-28 02:20:00

2020-04-22 10:43:49

高并發數據阿里巴巴

2019-10-30 16:54:08

golangredis數據庫

2021-06-09 18:52:05

方案設計庫存數

2025-04-08 05:00:00

2020-04-13 08:33:39

高并發秒殺系統

2025-03-10 09:20:00

庫存異常Redis架構

2023-11-27 18:07:05

Go并發編程
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 欧美在线观看一区 | 中文av在线播放 | 久久久一区二区 | 亚洲天堂影院 | 五月天天色 | 亚洲国产aⅴ成人精品无吗 综合国产在线 | 国产一级在线 | 国产精品国产精品国产专区不片 | 天堂一区 | 精品99在线| 精品一区二区三区在线观看 | 中文字幕高清 | 波多野结衣二区 | 黑人巨大精品欧美一区二区一视频 | 伊人狠狠 | 超碰人人艹 | 国产99久久精品一区二区300 | 麻豆精品国产91久久久久久 | 一本一道久久a久久精品蜜桃 | 51ⅴ精品国产91久久久久久 | 日韩一区二区三区在线观看 | 欧美性生活网 | 国产精品久久久久久久久久久免费看 | 久久网一区二区三区 | 久久国产视频网站 | 国产线视频精品免费观看视频 | 日韩一区二区三区四区五区 | 成人免费影院 | 欧美精品片 | 午夜视频免费在线 | 二区av | 九九精品视频在线 | 久草免费电影 | 99精品观看 | 久久国产精品久久国产精品 | 日韩精品在线一区 | 老牛影视av一区二区在线观看 | 日日夜夜狠狠操 | 午夜爽爽爽男女免费观看 | 日韩在线不卡视频 | 欧美三级视频在线观看 |