商品庫存秒殺方案總結


庫存秒殺方案,怎么樣能支撐瞬間的高並發的流量。結合網上的文章自己做了個總結。

1.解決思路,漏斗原理通過層層過濾來過濾掉無效的請求(比如重復請求)等等,具體怎么過濾呢主要有限流、削峰、緩存等手段來實現。

限流:通過滑動窗口、漏桶算法來控制請求數,Google開源工具包Guava提供了限流工具類RateLimiter 令牌桶算法來限流,如果是集群的話可以使用redis

           作為計數次來判斷,根據用戶id和接口拼接成key 並設置過期時間,利用redis incr 來計數來限流。

削峰:通過異步、MQ 方式來承載瞬時並發

緩存:提高響應時間

 

2.針對庫存秒殺場景我們看下整個請求過程

具體Demo 項目地址:https://github.com/chenzhe/RedisLockStockDemo

在這個Demo項目中使用了kafka做消息隊列同步雙寫,Redis做為緩存,使用了Redisson 分布鎖來控制並發庫存操作。


免責聲明!

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



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