精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

高并發場景下的庫存管理,理論與實戰能否兼得?

開發 架構
分布式系統常見的一個問題就是數據傾斜問題,因為嚴重的數據傾斜,會讓我們分布式方案瞬間瓦解,導致單點承擔高并發。那么該方案下的數據傾斜問題如何解決呢?

前言

而這篇文章,從實踐出發,解決一個真實場景下的高并發問題:秒殺場景下的系統庫存扣減問題。

隨著互聯網業務的不斷發展,選擇在網上購物的人群不斷增加,這種情況下,會衍生出一些促銷活動,類似搶購場景或者熱銷熱賣場景,在高峰時段的下單數量會非常大,也意味著對數據庫中暢銷商品的庫存操作十分頻繁,需要頻繁查庫存和更新庫存。這屬于高讀寫場景,比起單獨的并發讀和并發寫來說,業務場景更復雜一些。那么這種高并發為了保證庫存數據一致性,一般會在數據庫更新時進行加鎖操作,以保證系統不會發生超賣情況。

我們應該如何應對呢?大家可以根據我之前那篇文章中的思維導圖,跟隨我的思路,一起來看如何解決當前場景下的高并發問題。

小試牛刀

面對庫存扣減的場景,我們第一個考慮到是數據一致性問題,因為超賣會對我們的履約和客戶信譽造成影響。所以一般情況下,在數據庫更新時進行加鎖操作,以保證系統不會發生超賣情況。所以更多方案是提高數據庫性能方法,比如增加硬件性能,優化樂觀鎖,提升鎖效率,優化SQL性能等。對于一些大型系統,也衍生出一些基于分片的庫存方案,通過分庫分表增加并發吞吐量。

當然那這樣不夠,因為MySQL數據庫的讀寫的并發上線能力是有限的,我們還是需要再進一步優化我們的方案。這里就要參考之前我寫的那篇文章中的思維導論了,這里常見解決方案就是,引入緩存機制。

如下圖所示,我們把讀請求進行緩存,每次庫存校驗時,我們引入redis緩存,讀請求通過緩存,增加接口性能,然后庫存扣減時,在進行緩存同步。

圖片圖片

但這種方式存在很大問題:所有請求都會在這里等待鎖,獲取鎖有去扣減庫存。在并發量不高的情況下可以使用,但是一旦并發量大了就會有大量請求阻塞在這里,導致請求超時,進而整個系統雪崩;而且會頻繁的去訪問數據庫,大量占用數據庫資源,所以在并發高的情況下這種方式不適用。同時這個方案還會存在mysq和redis的數據同步不一致的情況,導致高并發情況下,出現超賣。

所以這種方案雖然簡單,但是無法滿足高并發場景,我們必須得pass。

循序漸進

為此,我們可以進行一次優化,通過架構維度進行調整。

在這個方案中,我們將庫存操作封裝成一個單獨模塊,這個方案的優化點在于,所有庫存的查詢和扣減都圍繞redis進行。當發生庫存扣減操作時,會直接更新redis,同時采用異步流程,更新MySQL數據庫。這樣以來,我們的性能會比直接訪問MySQL數據庫高效不少,并發能力會有不少提升。

流程如下:

圖片圖片

但這個方案依然有缺陷,它的點在于redis的單點性能問題。該方案的最大并發性能取決于redis的單點處理能力。而如果想要進一步提升并發能力,該方案不具備水平擴展能力。那么,這個方案,依然不是我們最優的選擇。

大顯身手

那么接下來,我們需要考慮的是如何可以實現我們業務系統并發能力的水平擴展能力。當然這里也不是憑空來想,我們可以思考一下,業內成熟的一些中間件是如何實現高并發的,這里我們可以兩個我們常見的框架:kafka和elasticsearch。

上述我們常見的兩個中間件框架,都以可以水平能力擴展著稱。那么仔細思考一下他們的技術架構不難發現,他們的核心其實都是采用了一種所謂的分片實現的。那么問題來了,我們的庫存扣減,能不能實現分片呢?或者換一個思路思考這個問題:我們的庫存邏輯是否可以轉化為分布式庫存進行存儲和擴展呢?

有了以上的思路,我們就可以開始構建我們的架構方案了。接下來,我先把架構圖貼出來:

圖片圖片

在這個架構方案中,是以Redis緩存為實現基礎,結合Mysql數據存儲,通過一套控制機制,保證庫存的分布式管理。在該方案中,有一些特定的業務模塊單元需要說明。

1. partition

熟悉kafka的人對partition一定不陌生。在本架構方案之中,該業務架構中的partition的概念是一組基于redis來實現的庫存分片,分別存儲一部分庫存大小。

在一個partition中,會存有一定量的預占庫存量,當有請求服務進行庫存扣減時,只需要選擇其中一個partition即可,這樣以來,就可以減輕單節點的壓力,同時可以基于redis集群的可擴展性,實現partition的水平擴展。

分布式系統常見的一個問題就是數據傾斜問題,因為嚴重的數據傾斜,會讓我們分布式方案瞬間瓦解,導致單點承擔高并發。那么該方案下的數據傾斜問題如何解決呢?

最終,我想到的解決方案類似養寵物狗時買的那種定時投喂儀器,每天通過定時定量投喂,來保證寵物狗不會被餓到或者吃撐。

如果最初把所有庫存全部平均到每個partition中,當有多個大庫存扣減打到一個partition上時,會造成該partition上出現庫存被消耗光,而失去后續提供庫存扣減能力。為了解決這個問題,我在partition中采取的是動態庫存注入和子域隔離的方案。具體方案如下圖:

圖片圖片

每個partition會有兩個子域,調度器中會記錄每個partition當前激活的子域,每次庫存扣減,會扣減激活的子域中的庫存值。而當激活的子域庫存值低于設定閾值是,會切換子域,冷卻當前子域,激活另一個子域。被冷卻的子域會觸發任務觸發器,實現預占庫存的數據同步。

子域中會存儲一定額度的庫存值,不會存儲很大的量,這樣就可以保證動態的預占庫存實現,從而解決庫存傾斜的問題。

當然為了更好的管理partition,我們需要單獨開發一個partition調度器模塊,來負責管理管理眾多partition資源,那么這個調度器的具體功能包括:

1.調度器中有一個注冊表,會記錄 Partition的key值,外部服務獲取partition key是需要通過調度器獲取,調度器會記錄每個partition的庫存余量和partition和子域信息。

2.當partition無法再獲取預占庫存,且庫存耗盡時,調度器會從注冊表中摘除該partition信息。

3.調度器可以采用隨機或者輪訓的方式獲取partition,同時每次也會校驗partition剩余庫存是否滿足業務扣減數量,如果剩余庫存小于業務扣減數量,將會跳過該partition節點。

2. 異步更新庫存

第二個核心模塊就是更新庫存管理了,這塊你可以理解為異步流程機制,通過異步化操作,來減輕系統的高并發對數據庫的沖擊。

更新庫存會有一個明細表,記錄每個partition庫存扣減信息,明細表會有一個同步狀態,有兩種情況可以出發庫存同步MQ消息:

第一.當每個partition中的明細數據條數超過設定閾值,會自動觸發一次MQ消息。

第二.每間隔額定設定時間(默認設置1秒),會觸發一次當前時間段內每個partition產生的庫存扣減明細信息,然后發送一次MQ消息。

兩中觸發方案相互獨立,互不影響,通過同步狀態和明細ID實現冪等。

3. 預占庫存管理和庫存管理

接下來就是關于庫存的底層數據結構設計了。這里會引入一個在電商行業很共識的概念:預占庫存。

在庫存領域層中,庫存分為預占庫存和庫存兩個模塊,這里面的庫存關系實例如下:

假設當前商品的庫存值為10000件,當前partition觸發一次預占庫存任務,領取400件,然后假設此時收到MQ庫存消費更新消息,更新30件。隨后partition又觸發一次預占庫存任務,零陵區了100件。庫存變化如下圖所示:

圖片圖片

其中 實際庫存= 預設庫存池 + 預占庫存。

每次預占庫存任務觸發,會從預設庫存池中扣減,如果預占庫存池清空,則partition就無法在獲取預占庫存,調度器會將它從注冊表中摘除。

而每次MQ更新庫存消息,會更新實際庫存量,同時對預占庫存和扣減庫存值進行修改,這個操作具有事務性。

總結

通過這次的案例分析,我們其實是通過方法論結合實際業務場景的方式出發,設計了我們的系統架構。剝離業務場景,其實本質就是通過緩存和異步流程來實現系統的高并發,同時讓系統具備擁有水平擴展的能力。但這個方法論在與實際業務結合時,還是會有很多很多需要思考和細化的點,比如分布式思想的使用,比如預占庫存的邏輯設計等等。

責任編輯:武曉燕 來源: 京東云開發者
相關推薦

2024-09-10 10:42:27

2025-06-27 02:00:00

Spring高并發庫存

2025-02-26 03:00:00

2025-02-28 00:03:22

高并發TPS系統

2018-07-27 10:56:10

2025-06-05 01:22:00

SpringGateway高并發

2021-01-13 05:27:02

服務器性能高并發

2025-06-30 02:15:00

2023-07-18 09:24:04

MySQL線程

2025-05-26 02:11:00

2025-03-11 08:36:52

高并發場景性能

2025-03-31 10:42:31

2024-08-29 09:32:36

2023-10-07 08:54:28

項目httpPost對象

2020-04-22 10:43:49

高并發數據阿里巴巴

2025-02-16 23:15:17

2025-07-01 07:21:15

2025-07-09 04:00:00

Kafka億級流量高并發

2025-01-03 09:56:09

2025-02-14 03:00:00

點贊
收藏

51CTO技術棧公眾號

国产男女免费视频| 成人免费看片网站| 国产精品综合激情| 久久在线观看| 午夜免费久久看| 天天综合色天天综合色hd| 国产精品玖玖玖| 在线亚洲欧美| x99av成人免费| 一边摸一边做爽的视频17国产| 在线视频cao| 亚洲色图视频免费播放| 精品欧美日韩| 国产巨乳在线观看| 美女精品网站| 九九热视频这里只有精品| 免费在线观看你懂的| 欧美三级一区| 欧美三级一区二区| 免费一级特黄特色毛片久久看| www 日韩| 91麻豆免费视频| 3d精品h动漫啪啪一区二区| 天堂中文字幕在线观看| 欧美91福利在线观看| 亚洲视频综合网| 精品少妇人妻av一区二区三区| 激情中国色综合| 亚洲成人午夜影院| gogogo免费高清日本写真| 亚洲aⅴ乱码精品成人区| 黄网站免费久久| 国产精品久久久久久久久久三级| 精品肉丝脚一区二区三区| 97视频精品| 亚洲最新av在线| 色天使在线视频| 超碰地址久久| 欧美三级中文字幕| 国产精品无码av无码| 麻豆mv在线看| 午夜影院久久久| 国产一二三在线视频| 黄色成年人视频在线观看| 国产午夜精品在线观看| 蜜桃传媒视频麻豆第一区免费观看 | 亚洲AV无码成人片在线观看| 麻豆国产精品官网| 国产精品久久久| 精品国产一区二区三区四| 91久久视频| 欧美精品www| 免费一级片视频| 亚洲欧美一级二级三级| 久久中文字幕一区| 亚洲国产精品免费在线观看| 91精品啪在线观看国产81旧版| 日韩亚洲欧美成人| 天天做夜夜爱爱爱| 中文字幕亚洲综合久久五月天色无吗'' | 色呦呦免费观看| 成人免费黄色在线| 国产视频一区二区三区四区| 天堂在线资源8| 99国产麻豆精品| 久久人人97超碰人人澡爱香蕉| 日色在线视频| 91蜜桃婷婷狠狠久久综合9色| 精品国产乱码久久久久久88av| 五月婷婷丁香六月| 久久精品亚洲乱码伦伦中文| 色噜噜一区二区| 日本美女在线中文版| √…a在线天堂一区| 特色特色大片在线| 电影k8一区二区三区久久 | 最新国产精品亚洲| 国产美女福利视频| 国产精品www994| 91精品国产91久久久| 依依成人综合网| 青青草视频一区| 成人免费观看网址| 欧美一级做性受免费大片免费| 91女神在线视频| 日韩欧美视频第二区| 秋霞影院午夜丰满少妇在线视频| 亚洲女同一区二区| 国产91xxx| 高清在线一区| 日韩精品一区二区三区蜜臀 | 国产精品蜜臀av| 中文字幕精品在线播放| 国产激情视频在线看| 色综合色综合色综合色综合色综合 | 日韩另类在线| 日本国产一区二区| √天堂资源在线| 日韩a级大片| 中文精品99久久国产香蕉| 朝桐光av在线| 久久国产欧美| 99免费在线观看视频| 国产区在线视频| 亚洲国产精品人人做人人爽| 成人亚洲视频在线观看| 久久伊人精品| 一本一本久久a久久精品牛牛影视| 久久国产美女视频| 久久午夜影视| 国产精品日韩二区| 黄色av免费在线| 日本道色综合久久| 无码人妻一区二区三区精品视频| 欧美综合在线视频观看| 欧美激情久久久| 亚洲天堂999| 久久久欧美精品sm网站| 伊人久久大香线蕉av一区| h片在线观看视频免费免费| 欧美日韩激情一区二区三区| 国产精品伦子伦| 欧美激情四色| 国产精品一二三在线| 五月婷婷六月激情| 亚洲一区二区三区四区在线观看 | 销魂美女一区二区| 成人一级片网址| av电影一区二区三区| 亚洲伦理影院| 亚洲跨种族黑人xxx| 久久在线视频精品| 国内精品伊人久久久久av影院| 欧美日韩亚洲在线 | 亚洲综合婷婷| 国产精品人人做人人爽| 巨骚激情综合| 日韩欧美在线视频观看| 中文在线永久免费观看| 国产主播精品| 国产精品亚洲一区| 免费污视频在线| 日韩一区二区三区免费看| 女人裸体性做爰全过| 视频精品一区二区| 欧美国产一二三区| 日韩伦理在线| 日韩高清人体午夜| 五月天综合激情网| 91麻豆.com| 国产91对白刺激露脸在线观看| 国内精品国产成人国产三级粉色| 久久久久久com| 刘亦菲毛片一区二区三区| 亚洲黄色小说网站| 又黄又色的网站| av成人毛片| 蜜桃av久久久亚洲精品| 日韩欧美看国产| 亚洲色图狂野欧美| 波多野结衣黄色网址| 日本一区二区在线不卡| 五月天中文字幕在线| 亚洲激情五月| 国产超碰91| 涩涩av在线| 国产一区二区三区日韩欧美| 欧美激情一区二区三区免费观看 | 午夜欧美巨大性欧美巨大| 亚洲欧美综合v| 亚洲国产精品无码久久久| 国产欧美日韩视频在线观看| 久久国产精品国产精品| 91成人国产| 国产免费一区二区三区| 在线一区av| 日韩中文字幕视频在线| japanese国产| 狠狠躁夜夜躁人人爽超碰91| 亚洲午夜久久久久久久国产| 激情综合一区二区三区| 拔插拔插海外华人免费| 夜夜春成人影院| 91精品久久久久久久久青青| 黄色羞羞视频在线观看| 亚洲免费av网址| 国产又粗又猛视频免费| 亚洲一卡二卡三卡四卡无卡久久| 菠萝菠萝蜜网站| 久久69国产一区二区蜜臀| 青青草国产免费| 青青草国产免费一区二区下载| 91网站免费观看| 天堂av中文在线观看| 色综久久综合桃花网| 开心激情综合网| 欧美日韩www| 日本视频免费在线| 亚洲色图清纯唯美| 西西444www无码大胆| 国产精品一区一区三区| 国产真实乱子伦| 一本一道久久a久久精品蜜桃| 久久偷看各类wc女厕嘘嘘偷窃| 国产精品va视频| 国产精品久久9| 97人澡人人添人人爽欧美| 神马久久桃色视频| 亚洲av片一区二区三区| 欧美一区二区三区日韩视频| 亚洲自拍一区在线观看| 亚洲一区二区三区四区中文字幕| 日本免费www| 2023国产精品| 美女又黄又免费的视频| 免费成人在线观看| 国模无码视频一区二区三区| 一本一道久久a久久精品蜜桃| 亚洲 国产 日韩 综合一区| 四虎影视精品| 官网99热精品| 国产高清亚洲| 国产欧美精品一区二区三区-老狼| 色戒汤唯在线观看| 久久免费视频在线| caoporn免费在线视频| 在线亚洲欧美视频| 日韩大胆视频| 亚洲国产97在线精品一区| 国产成人三级在线播放| 91麻豆精品国产91久久久使用方法 | 国产精品videossex久久发布| 日韩在线导航| 蜜桃成人av| 久久综合毛片| 亚洲素人在线| 久久亚洲午夜电影| 一道在线中文一区二区三区| 精品国产中文字幕| 国产一级成人av| 黄色91av| 欧美色资源站| 黄色99视频| 特黄特色欧美大片| 久久综合给合久久狠狠色| 日本亚洲不卡| 欧美精品尤物在线| 神马久久一区二区三区| 欧美日韩精品免费观看视一区二区| 美女av一区| 免费看成人av| 精品久久久久中文字幕小说 | 色菇凉天天综合网| 中文字幕在线播| 色婷婷av一区| 中日韩av在线| 制服丝袜日韩国产| jizz中国少妇| 精品久久久久久最新网址| 亚洲男人第一天堂| 亚洲精品国精品久久99热一| 五月婷在线视频| 亚洲精品综合精品自拍| 国产高清在线观看| 色阁综合伊人av| av黄色在线| 韩国日本不卡在线| 成人亚洲欧美| 国产免费观看久久黄| 国内精品视频| 激情小说网站亚洲综合网| 一区二区导航| 中文字幕久久综合| 欧美日韩一区二区国产| 国产原创中文在线观看| 久久久久91| 红桃视频 国产| 成人免费看的视频| 女人黄色一级片| 亚洲精品免费在线播放| 免费观看一区二区三区毛片 | 国产高清视频免费| 亚洲精品一区二区三区福利| 黄网在线观看| 久久国产精品99国产精| jizz内谢中国亚洲jizz| 成人av.网址在线网站| a级日韩大片| 日韩欧美精品一区二区| 欧美日韩久久| 国产wwwxx| 国产成人精品三级麻豆| 亚洲av片不卡无码久久| 国产精品电影院| 天天操天天摸天天干| 91精品在线麻豆| 欧美女子与性| 欧美成人高清视频| 三级成人在线| 高清一区二区三区视频| 欧美电影《睫毛膏》| 婷婷无套内射影院| 久久激情五月激情| jizz日本免费| 樱花草国产18久久久久| 最好看的日本字幕mv视频大全| 欧美成人aa大片| 亚洲天天影视| 日本精品va在线观看| 日本一区二区三区播放| 先锋影音欧美| 亚洲自啪免费| 日本wwwwwww| 综合网在线视频| 亚洲中文一区二区| 亚洲国产精品专区久久| 国产黄a三级三级三级av在线看| 日韩av成人在线| 成人香蕉社区| 浴室偷拍美女洗澡456在线| 石原莉奈在线亚洲三区| 三级男人添奶爽爽爽视频 | 免费观看亚洲视频| 美女网站色91| 国产免费看av| 精品久久久久久中文字幕| 国产成年妇视频| 精品国产一区av| 国产精品久久久久77777丨| 欧美精品123| 免费亚洲婷婷| 影音先锋人妻啪啪av资源网站| 一区二区国产视频| 97人妻精品一区二区三区视频 | 精品精品导航| 91夜夜揉人人捏人人添红杏| 国产精品久久久久无码av| 成人性做爰aaa片免费看不忠| 91视视频在线观看入口直接观看www | www欧美激情| 国产亚洲欧美在线| 综合网在线观看| 亚洲精选中文字幕| 波多野结衣久久精品| 久久婷婷人人澡人人喊人人爽| 亚洲成人中文| 亚洲国产精品无码久久久久高潮| 午夜精品久久久久久久99水蜜桃| 亚洲AV无码乱码国产精品牛牛| 欧美成人免费视频| 日韩一区二区三区精品| 最新av网址在线观看| 国产精品99久| 日韩激情一区二区三区| 亚洲精品wwww| 伊人久久国产| 欧美一区二区影视| 日本aⅴ免费视频一区二区三区| 1024手机在线观看你懂的| 精品视频一区 二区 三区| 亚洲成a人v欧美综合天堂麻豆| 国产精品中文久久久久久久| 99国产精品一区二区| 黄色aaaaaa| 亚洲一卡二卡三卡四卡五卡| 香蕉久久国产av一区二区| 777午夜精品福利在线观看| 女人av一区| 超碰成人在线播放| 一二三区精品福利视频| 日韩中文字幕免费在线观看| 欧美一级视频一区二区| 精品国产一区二区三区四区| 天天干天天草天天| 亚洲免费观看在线视频| 色屁屁草草影院ccyycom| 欧美中文字幕在线| 久久人人99| 亚洲熟妇一区二区| 狠狠色狠色综合曰曰| 91在线看片| 99精彩视频在线观看免费| 国产九九精品| 国产亚洲精品久久久久久豆腐| 日韩一区二区三区免费看 | 色香色香欲天天天影视综合网| 草草影院在线观看| 147欧美人体大胆444| 国产麻豆综合| 极品久久久久久| 国产丝袜一区二区三区| 欧美网站免费| 免费看又黄又无码的网站| 国产精品美女一区二区| 丰满人妻一区二区| 国产精品福利网站| 精品av久久久久电影| 亚洲精品视频网址| 日韩av在线最新| 国产精品一区二区三区四区在线观看|