Queue實現秒殺的場景介紹

2021-09-24 03:55:33 字數 313 閱讀 5646

電商的秒殺和搶購,對程式設計師來說,都不是乙個陌生的東西。然而,從技術的角度來說,這對於web系統是乙個巨大的考驗。當乙個web系統,在一秒鐘內收到數以萬計甚至更多請求時,系統的優化和穩定至關重要。

我們直接將請求放入佇列queue中的,採用fifo(firstinput first output,先進先出),這樣的話,我們就不會導致某些請求永遠獲取不到鎖。這裡有點強行將多執行緒變成單執行緒的感覺。

秒殺看似簡單,但是可能會存在兩個問題:高併發和超賣

超賣:秒殺商品都會有固定的數量,如何避免成功下訂單買到商品的人數不超過商品數量的上限,這是每個搶購活動都要面臨的一大難題。

秒殺場景下MySQL的低效

最近業務試水電商,接了乙個秒殺的活。之前經常看到 的同行們討論秒殺,討論電商,這次終於輪到我們自己理論結合實際一次了。ps 進入正文前先說一點個人感受,之前看 的ppt感覺都懂了,等到自己出解決方案的時候發現還是有很多想不到的地方其實都沒懂,再次驗證了 細節是魔鬼 的理論。並且乙個人的能力有限,只有...

對秒殺場景的學習(3)

當併發量很大時,秒殺的商品的庫存已經為零,這個時候如果再去redis裡面查庫存,這樣就會影響效率 1.可以在 的邏輯上面加乙個concurrenthashmap的值,這樣就可以對其裡面的值做乙個判斷。2.如果是集群部署,當乙個伺服器發現庫存為零,往這個concurrenthashmap裡面存 乙個庫...

商城秒殺的實現

答 搶購 秒殺是如今很常見的乙個應用場景,主要需要解決的問題有兩個 1 高併發對資料庫產生的壓力 2 競爭狀態下如何解決庫存的正確減少 超賣 問題 對於第乙個問題,已經很容易想到用快取來處理搶購,避免直接運算元據庫,例如使用redis。第二個問題,我們可以使用redis佇列來完成,把要秒殺的商品放入...