對秒殺場景的學習(3)

2022-08-01 05:45:13 字數 406 閱讀 1239

當併發量很大時,秒殺的商品的庫存已經為零,這個時候如果再去redis裡面查庫存,這樣就會影響效率

1.可以在**的邏輯上面加乙個concurrenthashmap的值,這樣就可以對其裡面的值做乙個判斷。

2.如果是集群部署,當乙個伺服器發現庫存為零,往這個concurrenthashmap裡面存 乙個庫存為空的標識,concurrenthashmap的值不會複製到別的伺服器,這樣就會有乙個bug,所以可以加用zk,這樣所有的伺服器都會及時的獲取到這個concurrenthashmap的值的變化。

秒殺場景下MySQL的低效

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

RabbitMQ在秒殺場景中的簡單應用

秒殺業務的核心是庫存處理,使用者購買成功後會進行減庫存操作,並記錄購買明細。當秒殺開始時,大量使用者同時發起請求,這是乙個並行操作,多條更新庫存數量的sql語句會同時競爭秒殺商品所處資料庫表裡的那行資料,導致庫存的減少數量與購買明細的增加數量不一致,因此,我們使用rabbitmq進行削峰限流並且將請...

秒殺場景下mysql減庫存邏輯優化

問題背景 某天早上做活動,流量大量增長,導致大量更新庫存操作失敗。操作mysql返回的錯誤均為 lost connection to mysql server 即mysql服務端主動斷開了連線,導致update操作失敗。都是在sql執行過程中返回的 lost 且都是update操作返回 lost 同...