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

高并發秒殺方案:熱點散列,庫存分桶,你需要了解一下

開發 前端
在緩存中扣減庫存,以提升系統的吞吐量;緩存扣減成功后,異步向數據庫寫入庫存扣減流水并更新庫存;此外,還需要通過定時任務等機制實現緩存與數據庫的庫存總量同步。

在大規模秒殺活動中,針對單一商品的庫存扣減請求峰值可以輕松達到幾萬、甚至幾十萬QPS,如常見的搶茅臺活動。在這種場景下再基于數據庫進行庫存扣減就顯得無能為力了,記住一個關鍵指標:在MySQL中,目前單行更新操作的的性能約為500QPS。對于動輒幾萬QPS的庫存扣減來說,這個量級肯定是偏低了。

所以為了應對這種高并發場景,業界提出了一種方案叫 熱點散列,即今天群里討論的庫存分桶。

其方案如下圖所示:將同一商品的庫存提前分配至多個“桶”中,根據路由規則(隨機、UID取模)將庫存請求路由至不同的桶,從而將集中于單實例的請求分散,此方案類似于水平擴展。

圖片圖片

至于“分桶”的技術實現,很多技術文章或解決方案都建議采用Redis來實現。具體而言,對任一秒殺活動的商品,可將其分成N份,每份對一個緩存Key,緩存Key的構成必須遵循一定的規律,便于路由,示例如下:

key: inventoryId_1,value: 庫存數量 

key: inventoryId_2,  value: 庫存數量 

... 

key: inventoryId_N,  value: 庫存數量

在扣減庫存時,可以根據Key的編號區間,采用隨機算法,UID取模等方式確定一個編號,然后組裝Key訪問緩存。 

舉個例子,假如inventoryId為20221821,將庫存分配至100個桶,則根據相應Key的區間為[1,100]。

服務端收到商品庫存扣減請求后,將請求中的參數UID取模,假設UID % 100 = 67,則組裝Key為 20221821_67,基于20221821_67扣減對應緩存桶中的庫存。

熱點散列的核心思想為:在緩存中扣減庫存,以提升系統的吞吐量;緩存扣減成功后,異步向數據庫寫入庫存扣減流水并更新庫存;此外,還需要通過定時任務等機制實現緩存與數據庫的庫存總量同步。

這個方案看上去很不錯,但也會存在如下三個問題:

一、在緩存中扣減庫存如何保證冪等性呢?若冪等性防控不足,則可能出現重復扣減,進而導致少賣。

二、緩存寫操作和數據庫寫操作無法通過事務機制來保證強一致性,那么該如何有效的保證庫存數據的一致性呢?

三、用戶所見的庫存應為總庫存,即便總庫存充足,一旦分桶,如何保證用戶請求被路由到的分桶油足夠的庫存呢?

所以個人覺得,熱點散列在理論上是解決庫存熱點問題最有效的方案,但在實際應用中,需要考慮的細節非常多。基于緩存的庫存扣減的方案是比較粗糙的,它只滿足一些特定場景的需要。對于淘寶、京東這類在想商品規模達數十億的大型電商平臺而言,所面臨的問題要復雜得多,除了穩定性、可靠性、一致性,還包括庫存分配,庫存碎片,庫存擴縮容、流量傾斜、商品少賣、商品超賣等。

上次去阿里交流的時候,阿里專家唐三說:在阿里,庫存架構采用的方案是做庫存單元化架構,這種方案應該是大型電商平臺庫存系統的終極解決方案。

責任編輯:武曉燕 來源: JAVA日知錄
相關推薦

2019-11-07 15:20:07

JavaCollectorsteeing

2021-07-06 14:56:20

深度學習編程人工智能

2024-09-10 10:42:27

2012-06-26 10:13:55

2011-04-01 11:16:06

hessian

2012-06-27 09:11:47

2020-12-09 09:30:57

前端開發技術

2022-08-25 14:42:45

JavaScrip字符串

2017-09-22 14:12:33

Android字體 Typeface

2021-08-09 14:40:02

物聯網IOT智能家居

2016-11-01 16:41:08

直通網線連接端口傳輸數據

2018-04-02 14:21:43

互聯網物聯網

2023-05-28 18:21:32

2023-06-30 08:27:20

2022-01-04 19:28:05

VMware云端虛擬化

2020-10-13 06:56:19

JavaScript異常類型開發

2022-10-26 07:21:15

網絡視頻開發

2015-12-23 10:00:04

多種編程語言

2010-04-30 10:05:31

企業級Linux

2015-09-17 09:36:46

Chrome改變
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 九九热最新地址 | 国产一区二区三区四区 | 综合久久av| 午夜久久av | 99精彩视频 | 亚洲视频一区在线观看 | 一区二区精品 | 老司机深夜福利网站 | 黄片毛片 | 成人一区二区在线 | 精品免费国产一区二区三区 | 亚洲国产一区在线 | 狠狠干五月天 | 国产精品免费小视频 | 欧美极品视频在线观看 | 中文字幕日韩欧美一区二区三区 | 日韩在线视频精品 | 亚洲成人精品免费 | 91亚洲国产成人精品一区二三 | 91精品中文字幕一区二区三区 | 日本三级电影在线免费观看 | 国产高清一区二区 | 欧美日一区 | 国产精品国产a级 | 亚洲第一区久久 | 久久在线 | 亚洲成人三区 | 美女爽到呻吟久久久久 | 欧美成人免费电影 | 欧美性一区二区三区 | 二区av| 久久51 | 亚洲 欧美 精品 | 久久综合色综合 | 亚洲精品视频在线看 | 男女国产视频 | 激情av免费看 | 国产午夜精品视频 | wwwsihu| 欧美日韩综合一区 | 日本视频一区二区 |