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

秒殺場景下訂單中心的架構設計

開發 前端
Java 程序總是從主類的 main 方法開始執行,main 方法就是 ?Java 程序默認的主線程,而在 main 方法中再創建的線程就是其他線程。

不管是普通場景的下單,還是秒殺場景的下單,對訂單中心來說,都是下單,關鍵是要能支撐秒殺瞬間大量的下單請求。本文探討一下通用的訂單中心架構,主要從服務劃分、下單請求處理流程、核心表分庫等方面來介紹,不區分普通下單還是秒殺下單,系統架構設計做好了,有秒殺活動時,無非進行一些擴容、限流、降級等手段即可應對。

服務劃分

服務說明

我不希望整個訂單中心就是一個巨大的單體服務,也不希望是太細的微服務,我希望訂單中心是合理的“中服務”的組合。

可針對不同場景對服務進行擴容,比如訂單搜索請求量比較大,就適當增加訂單搜索服務的實例數量;消費速度慢,可針對訂單消費者服務進行優化,調整服務實例數量。

上面劃分的每一個服務都是獨立部署運行的服務。

服務

說明

order-core(訂單核心服務)

負責訂單的業務處理,直接和 DB 交互

order-search(訂單搜索服務)

負責訂單索引的維護和搜索,直接和 ES 交互

order-job(訂單調度服務)

訂單超時取消等調度任務

order-consumer(訂單消費者服務)

消費訂單相關消息,如下單消息、訂單索引更新消息

order-manage(訂單管理后臺系統)

訂單管理后臺,數據來源于 ES 和從庫

應用架構圖

服務調用關系圖

提交訂單服務調用關系:

  • 鏈路 1.1 ~ 1.3 提交訂單
  • 鏈路 2.1 ~ 2.4 消費下單消息(下單業務處理)
  • 鏈路 3.1 ~ 3.2 查詢下單結果
  • BFF(小程序的后端,負責聚合和適配)

后臺服務調用關系:

  • 后臺連接獨立的專有讀庫,與前臺隔離,不能因為后臺的查詢影響前臺的操作
  • 后臺的訂單查詢可以調用搜索服務和讀庫來完成
  • 后臺的增刪改操作調用 order-core(訂單核心服務)進行操作,不能直接操作數據庫

訂單搜索或查看訂單詳情服務調用關系:

  • 訂單列表或者搜索訂單可以調 order-search(訂單搜索服務)來完成
  • 在訂單列表店家訂單明細,可以根據訂單號由 order-core(訂單核心服務)查詢從庫來完成

訂單調度服務調用關系:

  • 訂單調度服務查詢專有的讀庫
  • 寫操作調用 order-core(訂單核心服務)查詢來完成

下單流程

下單請求通過 MQ 異步化處理,下單處理結果存入 Redis,前端輪詢下單結果。

步驟說明

步驟 1:提交訂單說明

  • order-core(訂單核心服務)提供提交訂單接口(/order/submit)
  • 這個接口接收訂單相關的參數,如商品 id、價格、數量等
  • 接收到請求后,做好基本參數校驗
  • 生成唯一的訂單號,組裝基本的訂單信息
  • 將訂單號和訂單創建中狀態存入 Redis
  • 發送 MQ,然后將訂單號返回給前端

步驟 2:消費下單請求說明

  • order-consumer(訂單消費者服務)獲取到下單請求消息后,調庫存中心接口進行庫存預占
  • 如果庫存不足,預占失敗,則將訂單創建失敗狀態和失敗信息更新到 Redis,流程終止
  • 如果庫存充足,預占成功,則將訂單創建成功狀態更新到 Redis
  • 調用 order-core(訂單核心服務)保存訂單信息到數據庫,調用 order-search(訂單搜索服務)對訂單進行索引
  • 發送創建訂單結果消息,庫存中心根據創單結果消息進行庫存扣減或者釋放

步驟 3:根據訂單號查詢輪詢下單結果說明

  • order-core(訂單核心服務)提供根據訂單號查詢訂單是否已創建接口(/order/is-created)
  • 該接口返回報文應包括,訂單號、訂單創建狀態(創建中,創建成功,創建失敗)、創建失敗原因
  • 前端定時輪詢該接口,查詢訂單是否創建成功,輪詢頻率可根據實際情況進行調整,比如 20ms 一次
  • 輪詢到訂單創建成功,可直接喚起支付,失敗則直接提示失敗信息

核心表分庫

  • 以訂單主表和訂單明細表為例進行分庫設計,假如按 32 個庫進行分庫。
  • 訂單主表和訂單明細表通過訂單號進行關聯。
  • 分庫要求:

某個用戶的所有訂單在同一個庫,避免跨庫查詢(可根據用戶 id——buyerId 定位到分庫編號)

某個商家的所有訂單在同一個庫,避免跨庫查詢(可根據商家 id——sellerId 定位到分庫編號)

可以根據訂單號查詢(可根據訂單號定位到分庫編號)

  • 按照以上分庫要求,做出以下分庫設計

訂單主表進行冗余,訂單主表分成用戶訂單主表(buyer_order)和商家訂單主表(seller_order)

用戶訂單主表(buyer_order)按照 buyerId % 32 進行分庫

商家訂單主表(seller_order)按照 sellerId %32 進行分庫

訂單號末位帶上分庫編號,分庫編號為 buyerId % 32

訂單明細表(order_detail)按照訂單號進行分庫,確保同一個訂單的明細在同一個庫

用戶訂單主表(buyer_order)同步寫入,因為訂單是由用戶發起的,需要保證實時性。

商家訂單主表(seller_order)建議保證最終一致性即可,可根據實際業務選擇同步雙寫或者通過 MQ 異步寫入

  • 分庫設計圖:

庫存扣減方案

  • 采用預占庫存方案:創建訂單時預占庫存
  • 庫存不足,預占失敗,下單失敗
  • 庫存足夠,預占成功,創建訂單
  • 訂單創建成功,扣減庫存;創建訂單失敗或者取消訂單,釋放庫存

庫存扣減序列圖

庫存設置到 redis 中,已 skuId 為 key,變化的數量為值,如:

  • 將 skuId=10086 的庫存值初始化為 100,redis.incrby(10086, 100)
  • 庫存初始化后,只能對庫存進行加減操作,不允許做覆蓋操作

Redis 如何與數據庫中的庫存保持一致:

  • Redis 和數據庫的庫存保持最終一致性
  • 庫存被預占時,生成庫存預占流水,關鍵字段有,訂單號、skuId、預占數量、流水狀態有(預占中、已扣減、已釋放),預占超時時間,同時可以在 Redis 或者數據庫中維護一個 skuId 對應的總預占數量字段,總預占數量 + 預占數量
  • 訂單中心發送庫存扣減消息,庫存中心消費消息時更新庫存流水狀態為已扣減,總預占數量 - 預占數量
  • 訂單中心發送庫存釋放消息,庫存中心消費消息時更新庫存流水狀態為已釋放,返還庫存到 Redis,總預占數量 - 預占數量
/**
* 預占庫存 偽代碼
* @param orderNo 訂單號
* @param skuId sku 標識
* @param quantity 預占數量
*/
boolean preOccupy(String orderNo, String skuId, int quantity) {
boolean isPreOccupySuccess = false;
int value = redis.decrby(skuId, quantity);
if (value >= 0) {
// 庫存充足
// 生成庫存預占流水記錄
//(關鍵字段:orderNo,skuId,quantity,state(0-預占中;1-已扣減;2-已釋放),timeout(超時時間)
isPreOccupySuccess = true;
} else {
// 庫存不足,返還剛才預占的庫存
redis.incrby(skuId, qunatity);
}
return isPreOccupySuccess;
}

數據庫的庫存數量禁止覆蓋更新!

數據庫的庫存數量禁止覆蓋更新!
扣減庫存偽 SQL:update stock set stock_num = stock_num - 變化的值 where sku_id = 10086

關于釋放庫存

對一些釋放異常的情況,可由庫存中心調度服務,找出庫存預占流水狀態為預占中且預占超時的記錄,根據訂單號向訂單中心確認該訂單號的庫存是已扣減還是已釋放,再進行相應業務處理。

其他

除了以上大的方面設計,分布式事務、冪等、補償、壓測……這些點是大家在設計系統時都需要考慮的,不在本文討論范圍。

責任編輯:武曉燕 來源: 今日頭條
相關推薦

2021-05-19 08:17:35

秒殺場景高并發

2021-10-27 10:48:49

架構運維技術

2020-07-15 18:01:15

騰訊云MySQL 8.0電商

2024-10-08 10:10:00

削峰高并發流量

2025-02-04 15:48:21

悲觀鎖數據庫應用

2023-04-07 17:44:43

2020-04-22 10:43:49

高并發數據阿里巴巴

2022-03-25 10:48:40

NBF架構設計

2017-07-06 00:27:17

虛擬訂單中心京東數據

2024-06-18 08:07:50

存儲架構設計

2024-10-15 11:04:18

2019-11-14 09:32:16

程序員MySQLRedis

2018-03-18 08:28:04

數據中心運維組織架構數據中心

2025-04-15 04:00:00

2018-11-08 15:10:02

阿里雙十一架構

2024-05-27 08:32:45

2013-05-27 10:58:28

Tumblr架構設計雅虎收購

2023-05-12 08:06:46

Kubernetes多云架構

2024-12-09 13:23:28

2020-09-02 07:32:19

數據架構訂單中心架構
點贊
收藏

51CTO技術棧公眾號

婷婷激情四射五月天| 久久久久久亚洲精品不卡4k岛国| 在线看片中文字幕| 电影一区二区三区久久免费观看| 亚洲黄色免费网站| 久久国产一区| 国产伦精品一区二区三区四区 | 亚洲区一区二区| 亚洲一区二区三区观看| 欧产日产国产精品视频| 中文字幕一区二区三区四区不卡| 国产伦精品一区二区三区四区视频| 加勒比在线一区| 韩国精品一区二区三区| 国产一区二区三区直播精品电影| av影片在线播放| 四虎4545www国产精品| 一区二区三区不卡在线观看| 日本不卡在线播放| 国产成人手机在线| 日本在线观看不卡视频| 久久久久久久久网站| 国产又粗又长又硬| 在线一级成人| 亚洲黄色在线观看| 日韩av影视大全| 日本一区二区三区视频在线| 亚洲福中文字幕伊人影院| 亚洲一区在线直播| 能在线看的av| 成人av电影在线播放| 91久久久久久久一区二区| 日韩电影在线观看一区二区| 99热这里只有精品8| 欧美剧在线观看| 182在线观看视频| 国产伦精品一区二区三区千人斩 | 深夜福利视频网站| 国产福利91精品一区| 成人有码视频在线播放| 中文在线字幕免费观| 可以看av的网站久久看| 97久久精品国产| 国产小视频在线观看免费| 国产精品88久久久久久| 在线观看亚洲区| 日韩女同一区二区三区 | 亚洲深夜福利视频| 在线观看国产网站| 农村少妇一区二区三区四区五区| 精品国产一区二区国模嫣然| 伊人久久久久久久久| 麻豆国产一区| 欧美mv和日韩mv的网站| 美女流白浆视频| 精品久久ai电影| 日韩精品视频在线播放| 国产一级伦理片| 亚洲精品国产精品粉嫩| 亚洲欧美综合精品久久成人| 人妻体内射精一区二区| 欧美人与拘性视交免费看| 亚洲人成在线播放| 精品无码在线观看| 99精品国产一区二区三区| 精品国产一区av| 卡通动漫亚洲综合| 国产一区日韩欧美| 久久久久久中文字幕| www.av麻豆| 久久精品观看| 国产综合视频在线观看| 国产高中女学生第一次| 国产成人免费高清| 久久精品第九区免费观看 | 久久久久成人黄色影片| 色吧亚洲视频| 黄色国产网站在线播放| 夜色激情一区二区| 99精品人妻少妇一区二区| 97热在线精品视频在线观看| 在线免费观看黄色小视频| 国产videos久久| 日韩在线观看免费全| 欧美亚洲日本在线| 国产欧美午夜| 国产伦精品免费视频| 99热这里只有精品99| 99riav久久精品riav| 香蕉久久免费影视| 污污片在线免费视频| 精品久久中文字幕久久av| 国产精品拍拍拍| 在线精品自拍| 中文字幕日韩精品在线观看| 欧美极品aaaaabbbbb| 久久亚洲电影| 国产99在线播放| av在线免费观看网站| 一区二区三区四区av| 青青在线视频观看| 欧美成人精品一级| 亚洲丝袜在线视频| www.av视频在线观看| 日本va欧美va欧美va精品| 国产成人免费观看| 69久久精品| 精品女同一区二区三区在线播放| 五月花丁香婷婷| 欧美女优在线视频| 欧美黄色性视频| 亚洲天堂2021av| 91麻豆国产福利在线观看| 在线播放 亚洲| 天天免费亚洲黑人免费| 亚洲第一精品久久忘忧草社区| 老司机福利在线观看| 免费日韩av片| 国产女主播一区二区三区| 久做在线视频免费观看| 在线日韩av片| 欧美一区二区三区成人精品| 欧美日韩一区二区国产| 国产精品一区二区三区久久| 毛片网站在线| 日韩欧美999| 亚洲调教欧美在线| 亚洲国产高清一区| 97se亚洲综合在线| 老司机免费在线视频| 欧美在线播放高清精品| 在线 丝袜 欧美 日韩 制服| 亚洲精品四区| 国产亚洲精品久久飘花| 日日夜夜天天综合入口| 91精品国产综合久久福利软件| 91在线无精精品白丝| 男女精品视频| 欧美精品亚洲| 午夜激情在线播放| 精品一区二区三区四区| 久久久久久久久久影院| 97se亚洲国产综合在线| 国内自拍在线观看| 色先锋久久影院av| 欧美亚洲成人精品| 欧美新色视频| 91福利视频在线| 欧美福利第一页| 日韩高清在线一区| 天天爽天天狠久久久| 欧美日韩亚洲国产| 中文字幕亚洲欧美日韩在线不卡 | 精品视频在线免费| 国产激情av在线| 久久99久久久久| ijzzijzzij亚洲大全| 久久丁香四色| 久久久亚洲国产| 视频在线不卡| 91国偷自产一区二区开放时间| 欧美 日韩 成人| 老司机精品视频导航| 99热一区二区三区| 99精品国产一区二区三区2021 | 欧美成人精品网站| 国产精品精品国产色婷婷| 天堂av2020| 国产综合欧美| 欧美乱偷一区二区三区在线| 国产第一亚洲| 欧美激情在线播放| 青青久草在线| 欧美人妇做爰xxxⅹ性高电影| 九九精品视频免费| zzijzzij亚洲日本少妇熟睡| av免费中文字幕| 91精品精品| 精品一区二区三区日本| 日韩毛片一区| 久久久久久久久久久国产| 男人天堂综合| 日韩亚洲欧美一区二区三区| 99免费在线观看| 欧美激情在线观看视频免费| 91人妻一区二区三区| 国产精品久久国产愉拍| 亚洲一区精彩视频| 欧美a级网站| 91麻豆桃色免费看| 台湾佬中文娱乐网欧美电影| 精品国偷自产在线| 五十路在线观看| 在线电影院国产精品| 日韩av黄色片| 中文字幕字幕中文在线中不卡视频| 老司机免费视频| 九九**精品视频免费播放| 日本日本19xxxⅹhd乱影响| 99精品在线观看| 老司机精品福利在线观看| 国产激情一区| 国产精品美女在线| 欧美男男tv网站在线播放| 北条麻妃一区二区三区中文字幕| 婷婷开心激情网| 欧美一级片免费看| 欧美成人精品网站| 偷拍一区二区三区四区| 草视频在线观看| 欧美国产精品劲爆| 日韩网站在线播放| 成人av资源在线观看| 一本之道在线视频| 蜜桃av一区二区| 中文字幕乱码人妻综合二区三区| 激情五月***国产精品| 国产精品av免费| 日韩欧美综合| 秋霞毛片久久久久久久久| 久久97精品| 99re在线| 国产一精品一av一免费爽爽| 国产精品色婷婷视频| 麻豆mv在线看| 97在线免费观看| free性m.freesex欧美| 欧美久久久精品| 超碰超碰在线| 久久精品小视频| 欧美成人hd| 久久亚洲影音av资源网| 一区二区三区视频网站| 伊人久久久久久久久久久| 欧美色18zzzzxxxxx| 亚洲国产欧美自拍| 日本精品一区二区在线观看| 精品成人在线观看| a天堂视频在线| 日韩视频一区在线观看| 国产视频在线免费观看| 欧美一卡二卡三卡| 99精品免费观看| 日韩亚洲电影在线| 亚洲高清视频网站| 精品国产乱码久久久久久老虎 | 亚洲欧美精品suv| 嫩草精品影院| 在线精品国产成人综合| 视频免费一区| 成人444kkkk在线观看| 最新超碰在线| 欧美国产日韩一区| brazzers在线观看| 欧美一区在线直播| 日韩在线短视频| 91九色精品视频| 日日夜夜精品视频| 国产女人水真多18毛片18精品| 女人抽搐喷水高潮国产精品| 欧美日韩国产综合视频在线| 日本一区二区三区视频| 中文字幕剧情在线观看一区| 真实国产乱子伦精品一区二区三区| 强开小嫩苞一区二区三区网站 | 伊人久久大香线蕉av不卡| 日本三级中国三级99人妇网站| 欧美裸体在线版观看完整版| 中文字幕日韩一区二区三区| 欧美精品日本| 国产日产欧美视频| 久久99深爱久久99精品| 亚洲精品久久一区二区三区777| bt欧美亚洲午夜电影天堂| 日韩乱码人妻无码中文字幕久久| 国产精品久久精品日日| 青青草国产在线观看| 午夜精品成人在线视频| 精人妻无码一区二区三区| 在线不卡一区二区| 性中国xxx极品hd| 亚洲午夜女主播在线直播| 日本中文字幕在线2020| 欧美激情视频一区二区| 亚洲承认视频| 91精品久久香蕉国产线看观看| 人人网欧美视频| 中文字幕一区二区三区有限公司 | 电影在线高清| 欧美激情一区二区三区成人 | 欧美日韩一区二区三区四区 | 在线播放成人| 精品综合在线| 中文字幕日韩欧美精品高清在线| 男女视频网站在线观看| 久久精品国产免费看久久精品| 日本一区二区免费视频| 欧美国产视频在线| 久草视频在线免费看| 欧美写真视频网站| 少妇人妻精品一区二区三区| 精品国内自产拍在线观看| 碰碰在线视频| 成人综合电影| 欧美电影《轻佻寡妇》| 中文字幕乱码人妻综合二区三区| 国产黄色91视频| 久久日免费视频| 欧美日韩国产精品一区| 国产哺乳奶水91在线播放| 亚洲最新视频在线| 天堂√8在线中文| 国产精品精品软件视频| 午夜片欧美伦| 宅男噜噜噜66国产免费观看| 99久久伊人网影院| 免看一级a毛片一片成人不卡| 欧美日韩一区二区三区在线| 狠狠色伊人亚洲综合网站l| 久久久久久美女| 亚洲视频精选| 免费日韩在线观看| 久88久久88久久久| 萌白酱视频在线| 91国产视频在线观看| 色视频在线观看免费| 久久免费精品日本久久中文字幕| 9999精品视频| 中文字幕欧美日韩一区二区三区| 日韩精品欧美精品| 成人免费网站黄| 色综合久久六月婷婷中文字幕| 手机av免费在线观看| 国内免费精品永久在线视频| 伊色综合久久之综合久久| 久久免费一级片| 国产激情一区二区三区四区| 国产尤物在线播放| 91精品国产高清一区二区三区蜜臀 | 国产成人无码专区| 亚洲天堂免费在线| 国产精品久久久久av电视剧| 欧美日韩电影一区二区| 国产视频亚洲| 91精品人妻一区二区三区蜜桃欧美| 亚洲大型综合色站| 五月婷婷开心中文字幕| 91精品国产91久久久久福利| 日本韩国欧美超级黄在线观看| 亚洲 高清 成人 动漫| 99久久精品免费| 精品不卡一区二区| 亚洲欧美一区二区激情| 91精品影视| 在线视频不卡国产| 国产精品18久久久久久久网站| 久久av高潮av无码av喷吹| 亚洲成avwww人| 一区二区精品伦理...| 欧美精品欧美精品系列c| 日本不卡123| 午夜激情福利网| 日韩av有码在线| 69堂精品视频在线播放| 爱爱爱视频网站| 成人网在线播放| 久久久久久久久黄色| 亚洲午夜av久久乱码| 人人精品久久| 亚洲色成人www永久在线观看| av中文字幕不卡| 中文字幕第315页| 欧美激情喷水视频| 夜色77av精品影院| 加勒比av中文字幕| 亚洲国产视频直播| 国产黄在线看| 99久久伊人精品影院| 午夜亚洲激情| 国产美女久久久久久| 亚洲第一福利视频| 国产91精品在线| 久操网在线观看| 国产精品三级电影| 成人乱码一区二区三区| 国产精品96久久久久久| 亚洲综合色网| 欧美丰满美乳xxⅹ高潮www| 日韩亚洲欧美在线| 久久久成人av毛片免费观看| 欧美黄网在线观看| 久久精品视频在线免费观看| 国内毛片毛片毛片毛片| 国产mv久久久| 亚洲性人人天天夜夜摸| 欧洲性xxxx| 日韩久久免费电影| 日本一区精品视频| 欧美日韩亚洲自拍| 精品久久久久久中文字幕大豆网 |