精品欧美一区二区三区在线观看 _久久久久国色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技術棧公眾號

91黄色8090| 欧美日韩一本到| 久久99精品久久久久久青青日本| 欧美亚洲天堂网| 欧美综合精品| 欧美日韩在线免费视频| 国产成人三级视频| 人妻与黑人一区二区三区| 午夜在线精品偷拍| 久久久国产精品一区| 伊人网综合视频| 国产精品原创视频| 亚洲图片自拍偷拍| 亚洲v国产v在线观看| 性一交一乱一色一视频麻豆| 久久久久久网| 欧美激情xxxx性bbbb| 中文字幕网站在线观看| 视频精品一区二区三区| 色婷婷久久99综合精品jk白丝 | 亚洲精品在线国产| 色爱区综合激月婷婷| www.国产在线视频| 爱久久·www| 成人污污视频在线观看| 国产精品专区h在线观看| 日韩成人免费在线观看| 66久久国产| 亚洲男人天堂2023| 国产免费无码一区二区| 国产精品美女午夜爽爽| 欧美日韩午夜剧场| 精品国产一区二区三区无码| 91青青在线视频| 久久综合国产精品| 高清国产一区| 国产成人精品无码高潮| 美国欧美日韩国产在线播放| 欧美有码在线视频| 热re91久久精品国99热蜜臀| 每日在线更新av| av网站在线看| 国产精品久久夜| 欧美污视频久久久| 无码精品一区二区三区在线| 国产精品亚洲综合一区在线观看| 国产精品专区第二| 中文字幕在线播放不卡| 日韩国产一区二| 青青久久aⅴ北条麻妃| 亚洲免费激情视频| 亚洲国产国产亚洲一二三| 欧美另类69精品久久久久9999| 国产aaaaaaaaa| 日韩av免费大片| 在线播放日韩专区| 少妇人妻好深好紧精品无码| 免费成人高清在线视频theav| 精品免费99久久| 日本泡妞xxxx免费视频软件| 久久中文字幕一区二区| 91精品国产91久久综合桃花| 日韩 国产 一区| 999色成人| 日韩三级中文字幕| 香蕉视频1024| 久久亚洲道色| 亚洲欧美日韩一区二区在线 | 97久久综合精品久久久综合| 日韩一级精品视频在线观看| 色欲欲www成人网站| 91夜夜蜜桃臀一区二区三区| 亚洲成人a**站| 黄色短视频在线观看| 婷婷综合电影| 亚洲深夜福利在线| 中文字幕第69页| 天天做天天爱天天综合网2021| 久热在线中文字幕色999舞| 岛国毛片在线观看| 国产日韩1区| 亚洲永久网站| 欧美亚洲视频一区二区| 秋霞av一区二区三区| 日本va欧美va精品| 亚洲一区二区三区sesese| 成人免费公开视频| 久久噜噜亚洲综合| 天天成人综合网| 国产后进白嫩翘臀在线观看视频| 欧美网站在线观看| 凹凸日日摸日日碰夜夜爽1| 欧美一级网址| 亚洲国产精品高清久久久| 偷偷色噜狠狠狠狠的777米奇| 国产成人高清| 欧美成人午夜激情在线| 中文字幕视频网站| 另类人妖一区二区av| 高清国产在线一区| 99精品老司机免费视频| 亚洲一区二区影院| wwwwww.色| ccyy激情综合| 一区二区三区美女xx视频| 视频这里只有精品| 久久综合狠狠| 91免费在线观看网站| 韩国福利在线| 亚洲一区日韩精品中文字幕| wwwwxxxx日韩| 老司机成人在线| 久久人体大胆视频| 亚洲精品中文字幕乱码三区91| 激情综合网最新| 免费一区二区三区在在线视频| 国产最新在线| 欧美亚洲愉拍一区二区| 东京热av一区| 亚洲澳门在线| 国产成人在线亚洲欧美| 人妻偷人精品一区二区三区| 国产精品女人毛片| 日本成年人网址| 岛国av一区| 超薄丝袜一区二区| 亚洲 小说区 图片区| 成人av网站在线观看免费| 国产大尺度在线观看| 日本肉肉一区| 亚洲韩国青草视频| 18精品爽视频在线观看| 美女国产一区二区| 日韩在线电影一区| 伊人久久精品一区二区三区| 欧美精品一区二区三区在线播放 | 中文字幕欧美一区| 密臀av一区二区三区| 国产图片一区| 欧美激情在线有限公司| 亚洲第一免费视频| 亚洲欧美日韩成人高清在线一区| 日本激情综合网| 欧美日韩精品一区二区视频| 欧美一级高清免费播放| 污视频软件在线观看| 亚洲电影在线播放| av电影在线播放| 亚洲国产99| 国产欧美日韩一区二区三区| 波多野结衣中文在线| 精品日韩欧美一区二区| 九九视频在线观看| 国产999精品久久| 乱熟女高潮一区二区在线| 视频精品一区二区三区| 欧美国产极速在线| 少妇又色又爽又黄的视频| 亚洲成人动漫精品| 亚洲熟妇一区二区三区| 先锋影音久久| 日韩资源av在线| 99只有精品| 久久久av电影| 国精产品乱码一区一区三区四区| 一区二区三区成人在线视频| 好吊操视频这里只有精品| 亚洲性图久久| 欧美日韩喷水| 成人国产精品| 久热99视频在线观看| 亚洲成人一二三区| 精品美女永久免费视频| 欧美特级黄色录像| 麻豆国产精品视频| 999久久欧美人妻一区二区| 美女视频亚洲色图| 国产精品无av码在线观看| 超碰在线caoporn| 亚洲成人精品久久| 青青国产在线视频| 最好看的中文字幕久久| 亚洲一区二区三区黄色| 日韩国产在线观看| 在线观看污视频| 欧美日韩一区二区三区四区不卡| 国产精品黄视频| 精品51国产黑色丝袜高跟鞋| 精品国产sm最大网站免费看| 亚洲中文字幕无码爆乳av| 亚洲免费在线视频| 日韩片在线观看| 久久精品免费观看| 欧美视频在线免费播放| 国产一区二区三区四区大秀| 国产在线日韩在线| 黄频免费在线观看| 亚洲男女性事视频| 99在线精品视频免费观看软件| 欧美日韩免费观看中文| 神马久久精品综合| 2023国产精品自拍| 午夜免费福利网站| 欧美亚洲一级| 91大学生片黄在线观看| 九九精品久久| 成人欧美一区二区| 香蕉久久一区| 国产91色在线免费| 久久亚洲导航| 久久精品91久久久久久再现| 日本一区视频| 亚洲精品一区二区三区精华液 | 精品欧美乱码久久久久久| 国产精品成人无码| 天天亚洲美女在线视频| 午夜激情视频在线播放| 2022国产精品视频| 一边摸一边做爽的视频17国产 | 成人性教育视频在线观看| 午夜av不卡| 欧美高清一级大片| 看女生喷水的网站在线观看| 一个人看的www久久| 亚洲国产精品suv| 这里只有精品免费| 中文字幕日本人妻久久久免费| 天天综合日日夜夜精品| 国产 日韩 欧美 成人| 亚洲欧美aⅴ...| 四虎影视一区二区| 国产日韩欧美精品电影三级在线| v天堂中文在线| 成人18视频在线播放| 亚洲成人av免费观看| 久久99精品久久久久| 日本免费观看网站| 日本不卡免费在线视频| 熟女性饥渴一区二区三区| 在线播放不卡| 2019日韩中文字幕mv| 欧美日韩免费观看一区=区三区| 在线观看成人av电影| 97人人精品| 亚洲人体一区| 久久亚洲成人| 一区二区三区四区欧美| 久久中文字幕av| 亚洲国产一区二区在线| 久久大综合网| 亚洲午夜高清视频| 国产精品x453.com| 在线观看日本一区| 国产精品国产一区| 色中文字幕在线观看| 911精品美国片911久久久| 色乱码一区二区三区熟女| 久久久久久免费视频| 久久香蕉视频网站| 伊人成人在线视频| 亚洲国产精品久久久久婷蜜芽| 亚洲永久字幕| 亚洲男人天堂色| 久99久精品视频免费观看| 狠狠干狠狠操视频| 国产精品一二一区| 亚洲一级av无码毛片精品 | 欧美福利第一页| 国产精品乱人伦| 婷婷激情四射网| 亚洲一区二区三区四区五区黄| 日本熟伦人妇xxxx| 欧美性猛交xxxx免费看| 国产精品xxxxxx| 6080yy午夜一二三区久久| 精品人妻午夜一区二区三区四区 | 日韩女优在线视频| www成人在线观看| 纪美影视在线观看电视版使用方法| 国产精品盗摄一区二区三区| 欧美激情图片小说| 欧美性猛交xxxx免费看漫画 | 日日夜夜一区二区| 在线视频观看一区二区| 成人午夜在线播放| 无码熟妇人妻av| 综合激情成人伊人| 五月婷婷激情网| 欧美三级电影在线看| 性一交一乱一乱一视频| 亚洲新声在线观看| av网址在线看| 青青草99啪国产免费| 国产美女视频一区二区| 蜜桃av噜噜一区二区三区| 婷婷精品进入| 亚洲乱码中文字幕久久孕妇黑人| 久久99久国产精品黄毛片色诱| 久久免费精品国产| 中文字幕中文乱码欧美一区二区| 久久久久久久9999| 欧美婷婷六月丁香综合色| 成人高潮片免费视频| 伊人久久大香线蕉av一区二区| gogogogo高清视频在线| 国产第一区电影| 伊人www22综合色| 亚洲不卡一卡2卡三卡4卡5卡精品| 欧美国产综合| 天天天干夜夜夜操| 99久久综合精品| 国产高潮国产高潮久久久91| 在线视频一区二区三| 蜜桃视频久久一区免费观看入口| 最近中文字幕mv在线一区二区三区四区| wwwww亚洲| 亚洲一区二区三| 日韩在线综合| 91色国产在线| 91视频一区二区三区| 欧美激情一区二区视频| 欧美日韩激情一区| 国产精品免费播放| 欧美性视频在线| 福利片在线一区二区| 欧美a级黄色大片| 久久精品久久99精品久久| 亚洲综合网在线观看| 动漫精品一区二区| 日本人妻丰满熟妇久久久久久| 久久这里只有精品99| 欧美伊人亚洲伊人色综合动图| 欧美在线激情| 男人的天堂亚洲在线| 亚洲制服丝袜在线播放| 亚洲国产综合视频在线观看| 精品久久国产视频| 超碰日本道色综合久久综合| 国产激情久久| 亚洲国产一区二区在线| 美国欧美日韩国产在线播放| 国产精品69久久久久孕妇欧美| 欧美吻胸吃奶大尺度电影| 91亚洲欧美| 91欧美精品成人综合在线观看| 日韩欧美视频| 加勒比av中文字幕| 亚洲天堂2016| 亚洲成熟女性毛茸茸| 欧美国产乱视频| 黄色成人美女网站| www一区二区www免费| 91香蕉国产在线观看软件| 在线观看免费av片| 亚洲深夜福利网站| 欧美大陆国产| 99精品视频网站| 国产999精品久久久久久绿帽| 日本在线观看视频网站| 日韩电影中文字幕在线| 精品免费av在线| 亚洲精品成人久久久998| 精品一区免费av| 国产性猛交普通话对白| 精品一区二区三区三区| 在线看欧美视频| 色哺乳xxxxhd奶水米仓惠香| 福利视频网站一区二区三区| 男女啊啊啊视频| 国产一区二区三区18| 国产电影一区二区| 人妻少妇精品久久| 久久精品视频一区二区三区| 伊人免费在线观看| 欧美肥婆姓交大片| 精品一区欧美| www.久久com| 欧美色视频日本高清在线观看| 国产一二三在线观看| 亚洲永久免费观看| 亚洲影音先锋| 国产精品丝袜一区二区| 日韩三级免费观看| 黄在线观看免费网站ktv| 日韩中文一区| 99国产一区| av在线免费播放网址| 精品久久国产97色综合| 午夜影院一区| 日韩人妻精品一区二区三区| 国产69精品久久久久777| 日本视频免费观看| 中文字幕在线精品| 久久久久97| 国产福利影院在线观看| 国产精品免费网站在线观看| www日本视频| 欧美老少做受xxxx高潮| 国产欧美日韩视频在线| 九九九九九国产|