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

驚了!1 萬屬性、100 億數據、10 萬吞吐,這樣的系統架構是怎么扛住的?

開發 架構
電商平臺涵蓋眾多商品品類,像數碼產品、服裝鞋帽、家居用品、美妝護膚、食品飲料等,每個品類又包含諸多子品類。而無論哪個品類,“商品信息” 都是最核心的數據,這就類似一個大型的線上商品集市。

有一類業務場景,數據沒有固定的模式(schema)存儲,卻有著海量的數據行數,該如何從架構層面實現這類業務的存儲與檢索呢?比如要處理 1 萬種屬性、100 億條數據,還得支撐每秒 10 萬次的吞吐,今天就和大家聊聊 “電商商品多維度信息業務” 的架構設計實踐。

一、背景與業務介紹

電商平臺的核心數據

電商平臺涵蓋眾多商品品類,像數碼產品、服裝鞋帽、家居用品、美妝護膚、食品飲料等,每個品類又包含諸多子品類。而無論哪個品類,“商品信息” 都是最核心的數據,這就類似一個大型的線上商品集市。

各分類商品信息的特點

經常網購的人很容易發現,這類平臺的商品信息有以下特點:

  • 不同品類的屬性差異極大,數碼產品和服裝的屬性完全不同,就連手機和電腦的屬性也不一樣,目前屬性數量已接近一萬種;
  • 數據量極為龐大,達到 100 億級別;
  • 每個屬性都存在查詢需求,各組合屬性也可能有組合查詢需求,比如手機要查詢品牌、內存、價格范圍,服裝要查詢尺碼、顏色、材質,家居用品要查詢風格、尺寸、功能等;
  • 吞吐量很高,每秒能達到幾十萬次。

那該如何解決 100 億數據量、1 萬種屬性、多屬性組合查詢以及每秒 10 萬次并發查詢的技術難題呢?我們一步步來分析。

二、最容易想到的初始方案

每個電商公司都是從小規模發展起來的,先不考慮并發量和數據量,看看如何先解決:

  • 屬性擴展性需求;
  • 多屬性組合查詢需求。畢竟公司初期并發量和數據量都不大,得先把業務問題解決。

業務存儲需求的滿足方式

最開始,業務只有手機這一個品類,商品表可能是這樣設計的:product(tid, uid, brand, model, memory, price)

多屬性組合查詢需求的滿足方式

最容易想到的是通過組合索引來滿足查詢需求,比如:

  • index_1(brand, model)
  • index_2(model, memory)
  • index_3(brand, price)

業務擴展后的存儲與查詢問題

隨著業務發展,新增了服裝類別,存儲問題可以通過新增若干屬性來解決,此時商品表變成:

product(tid, uid, brand, model, memory, price, size, color, material)其中,brand、model、memory、price是手機類別的屬性,size、color、material是服裝類別的屬性。

對于查詢需求,由于跨業務屬性一般沒有組合查詢需求,只能建立若干組合索引來滿足服裝類別的查詢需求。但想想看,要覆蓋所有兩屬性、三屬性查詢,得建多少索引,這顯然不是長久之計,業務越來越多時,這種方式就難以維系了。

三、垂直拆分的思路與問題

新增屬性是一種擴展方式,新增表也是一種方式,垂直拆分是常見的存儲擴展方案。

可以這樣操作:

  • product_phone(tid, uid, brand, model, memory, price)(手機商品表)
  • product_clothes(tid, uid, size, color, material, price)(服裝商品表)

垂直拆分帶來的問題

在業務多樣、數據量和吞吐量都很大的情況下,垂直拆分存在諸多問題:這些表以及對應的服務由不同部門維護,看似各業務靈活性強、研發閉環,但這恰恰是問題的開端:

  • 商品 ID(tid)如何規范?
  • 屬性如何規范?
  • 按商家 ID(uid)查詢(查詢商家發布的所有商品)該怎么辦?
  • 按時間查詢(最新上架的商品)該怎么辦?
  • 跨品類查詢(比如首頁搜索框)該怎么辦?
  • 技術范圍擴散,有的用 MongoDB 存儲,有的用 MySQL 存儲,有的自研存儲;
  • 重復開發了不少組件;
  • 維護成本過高。就像大型電商平臺的商品表,不可能一個類目一個表,電商商品信息表也一樣。

四、行業最佳實踐:三大中心服務

第一:統一商品中心服務

對于平臺型電商公司,可能有多個品類,各品類有很多異構數據的存儲需求,無需糾結是分還是合,統一基礎數據和基礎服務是很好的實踐(這里針對平臺型業務)。

異構數據的統一存儲方式

要將不同品類、異構的數據統一存儲,可采用以下方法:

  • 全品類通用屬性統一存儲;
  • 單品類特有屬性,通過品類類型與通用屬性的 JSON 來存儲。

更具體的設計是,商品表結構為:product(tid, uid, time, name, cate, subcate, xxid, ext)。其中:

  • 一些通用字段被單獨抽取出來存儲;
  • 通過cate、subcate、xxid來定義ext的含義;
  • 通過ext來存儲不同業務線的個性化需求。

tid

uid

time

cateid

ext

1

1

123

招聘

{"job":"driver","salary":8000,"location":"bj"}

2

1

456

二手

{"type":"iphone","money":3500}

例如,手機商品的ext可以是:{"brand":"Apple","model":"iPhone 15","memory":"256G","price":6999};服裝商品的ext可以是:{"size":"L","color":"blue","material":"cotton","price":299}。

商品數據有 100 億條,分 256 個庫,通過ext存儲異構業務數據,使用 MySQL 存儲,上層搭建一個商品中心服務,并用 Redis 做緩存,這樣一個并不復雜的架構,就解決了業務的大問題。這就是電商平臺最核心的商品中心服務 PMC(Product Management Center)。

新問題的出現

解決了海量異構數據的存儲問題后,又出現了新問題:

  • 每條記錄的ext內的鍵(key)都需要重復存儲,占用大量空間,能否壓縮存儲?
  • 品類 ID(cateid)已不足以描述ext內的內容,品類有不確定的層級,ext能否具備自描述性?
  • 能否隨時增加屬性,保證擴展性?

解決完海量異構數據的存儲問題,接下來要解決類目的擴展性問題。

第二:統一類目屬性服務

每個業務有多少屬性、這些屬性的含義、值的約束等,如果耦合到商品服務里顯然不合理,那該怎么辦呢?

可以抽象出一個統一的類目、屬性服務,單獨管理這些信息,并且商品庫ext字段里的 JSON 鍵,統一用數字表示,以減少存儲空間。

商品表只存儲元信息,不涉及業務含義。比如,JSON 里的鍵不再是 “brand”“model”“size” 這樣的長字符串,而是用數字 1、2、3、4 代替。這些數字的含義、所屬子分類、值的校驗約束,統一存儲在類目、屬性服務里。

tid

uid

time

cateid

ext

1

1

123

招聘

{"1":"driver","2":8000,"3":"bj"}

2

1

456

二手

{"4":"iphone","5":3500}

類目表存儲業務信息以及約束信息,與商品表解耦。這個表會對商品中心服務里ext字段的數字鍵進行解釋,比如:

圖片圖片

  • 數字 1 代表 “brand”,屬于數碼品類下的手機子品類,其值必須是品牌枚舉值;
  • 數字 4 代表 “size”,屬于服裝品類下的上衣子品類,其值必須是尺碼枚舉值(S、M、L 等)。

這樣,原來商品表的ext擴展屬性就變成了:{"1":"Apple","2":"iPhone 15","3":"256G","4":6999}和{"5":"L","6":"blue","7":"cotton","8":299}(服裝商品),鍵和值都有了統一約束。

此外,如果ext里某個鍵的值不是通過正則校驗,而是枚舉值,就需要有一個枚舉表來對值進行限定校驗。比如,當ext為{"5":"XL","6":"blue","7":"cotton","8":299}時,因為鍵 5 對應的屬性(服裝、上衣尺碼字段)的值需要是固定枚舉值(S、M、L 等),而 “XL” 不符合,所以這個ext是不合法的,合法的應該是{"5":"L","6":"blue","7":"cotton","8":299}。

另外,類目屬性服務還能記錄類目之間的層級關系,比如:

  • 一級類目有數碼、服裝、家居等;
  • 數碼下有二級類目手機、電腦等;
  • 手機下有三級類目蘋果手機、華為手機、小米手機等。

類目服務解釋了商品數據,描述了品類層級關系,保證了各類目屬性的擴展性,也保證了各屬性值的合理性校驗,這就是電商平臺另一個統一的核心服務 CMC(Category Management Center)。

這就類似于電商系統里的商品屬性擴展服務:

  • 品類層級關系對應電商里的類別層級體系;
  • 屬性擴展對應電商里各類別商品的屬性;
  • 枚舉值校驗對應屬性的枚舉值,比如手機品牌有蘋果、華為、小米等。

通過品類服務,解決了鍵的壓縮、描述、擴展以及值的校驗、品類層級等問題,但還有一個問題沒解決:每個品類下商品的屬性不同,查詢需求也不同,如何解決 100 億數據量、1 萬種屬性的檢索與聯合檢索需求呢?

第三:統一檢索服務

當數據量很大時,不同屬性上的查詢需求,不可能通過組合索引來滿足所有查詢需求,“外置索引,統一檢索服務” 是常用的實踐方法:

  • 數據庫提供 “商品 ID” 的正排查詢需求;
  • 所有非 “商品 ID” 的個性化檢索需求,統一通過外置索引來滿足。

圖片圖片

元數據與索引數據的操作遵循以下規則:

  • 對商品進行商品 ID(tid)正排查詢,直接訪問商品服務;
  • 對商品進行修改時,商品服務通知檢索服務,同時修改索引;
  • 對商品進行復雜查詢時,通過檢索服務來滿足需求。

這個檢索服務承擔了電商平臺 80% 的請求,不管請求來自 PC 還是 APP,也不管是來自首頁、分類頁、搜索頁、商品列表頁還是詳情頁,最終都會轉化為一個檢索請求。

搜索引擎架構說明

為了應對 100 億級別的數據量、幾十萬級別的吞吐量以及業務線各種復雜的檢索查詢,擴展性是設計的重點:

圖片圖片

  • 統一的代理層作為入口,由于其無狀態性,增加機器就能擴充系統性能;
  • 統一的結果聚合層,同樣因為無狀態性,增加機器也能擴充系統性能;
  • 搜索內核檢索層,服務和索引數據部署在同一臺機器上,服務啟動時可將索引數據加載到內存,請求訪問時從內存中讀取數據,訪問速度很快。為滿足數據容量的擴展性,索引數據進行了水平切分,增加切分份數就能無限擴展性能;為滿足一份數據的性能擴展性,同一份數據進行了冗余,理論上增加機器就能無限擴展性能。系統時延方面,100 億級別商品檢索,包含請求分合、拉鏈求交集等操作,從聚合層可以做到 10 毫秒返回。

在商品業務中,一致性不是主要矛盾,檢索服務會定期全量重建索引,以確保即使數據存在不一致,也不會持續很長時間

責任編輯:武曉燕 來源: 二進制跳動
相關推薦

2019-07-29 14:40:26

架構存儲檢索

2019-05-05 09:28:59

架構數據查詢

2020-03-26 08:07:28

紅包架構請求

2017-01-19 18:20:59

數據架構數據庫

2025-09-29 09:49:26

2017-03-20 16:13:31

微信紅包高并發紅包系統

2020-08-20 08:11:15

程序員技術網絡

2020-03-20 11:51:54

運維監控技術

2025-08-22 09:06:57

2025-01-12 13:06:45

2022-08-03 10:57:23

服務網格字節跳動流量治理

2012-02-10 09:34:02

2021-03-04 07:59:40

壓測代碼日志

2010-12-07 11:24:45

跳槽

2015-03-02 13:10:53

IT技術周刊

2020-12-30 09:45:50

MySQL數據分離數據庫

2023-09-12 14:40:41

2025-09-28 01:50:00

2025-06-23 08:23:04

2013-09-27 09:59:52

云計算大數據Salesforc
點贊
收藏

51CTO技術棧公眾號

在线观看视频一区二区欧美日韩| 中文一区一区三区高中清不卡| 欧美成人午夜免费视在线看片| 中文字幕视频观看| 中文字幕在线免费观看视频| 国产精品美女一区二区在线观看| 91在线视频导航| 亚洲男人第一av| 91精品久久久久久久久久不卡| 亚洲电影免费观看高清完整版在线| 蜜臀av午夜一区二区三区| 免费在线观看av| 91在线你懂得| 亚洲永久免费观看| 久久久久久91亚洲精品中文字幕| 天天影视综合| 亚洲欧美国产一本综合首页| 亚洲黄色片免费看| 成人自拍av| 亚洲一区二区在线观看视频| 亚洲v国产v在线观看| 韩国av永久免费| 久久电影网电视剧免费观看| 91精品国产高清久久久久久| 亚洲一级生活片| 精品国产乱码久久久久久蜜坠欲下| 日韩三级中文字幕| 成人性生交免费看| 欧美二三四区| 欧美日韩亚洲系列| 日韩 欧美 视频| a天堂中文在线官网在线| 国产婷婷色一区二区三区| 国产高清在线一区二区| 99久久精品无免国产免费| 日韩激情视频在线观看| 欧美在线视频一区二区| 日本熟妇毛耸耸xxxxxx| 久久久久久久久久久妇女| 亚洲人成精品久久久| 99精品视频在线免费观看| 91影视免费在线观看| 中文字幕av在线免费观看| 亚洲一区欧美二区| 91精品国产一区| 久久国产精品波多野结衣| 婷婷综合久久| 俺去亚洲欧洲欧美日韩| 一二三四国产精品| 欧美三级美国一级| 亚洲区免费影片| 国产精品无码午夜福利| 日韩欧美国产大片| 亚洲精品永久免费精品| 久久久久国产精品区片区无码| 亚洲精品黑牛一区二区三区| 日韩视频在线永久播放| 久久久久久久久久久影视| 日韩激情电影| 黑人巨大精品欧美一区二区免费| 六月丁香激情网| 人在线成免费视频| 色综合中文综合网| 国产v亚洲v天堂无码久久久| 亚洲高清黄色| 在线观看亚洲精品视频| 久久国产激情视频| 精品国产亚洲一区二区在线观看| 91精品国产欧美日韩| 免费欧美一级片| 国产精品对白| 亚洲欧美激情在线视频| 国产又粗又猛又爽又黄的视频四季 | 国产精品久久久久久一区二区 | 玖玖精品视频| 国产成人综合亚洲| 91中文字幕在线视频| 国产乱码精品1区2区3区| 成人欧美视频在线| 性xxxx视频播放免费| 久久久精品国产免费观看同学| 欧美深深色噜噜狠狠yyy| 视频免费一区| 亚洲成a天堂v人片| 欧美亚洲日本在线观看| 精品国产亚洲一区二区三区大结局 | 久久久久久久久久久久久久| 欧美精品电影在线| 欧美一区二区三区不卡视频| 久久激五月天综合精品| 日本在线播放一二三区| 国产盗摄精品一区二区酒店| 久久午夜国产精品| 亚洲精品国产一区| 国产区在线看| 欧美性猛交xxxx乱大交| 亚洲另类第一页| 狠狠一区二区三区| 中文字幕日韩综合av| 久久激情免费视频| 模特精品在线| 91国产在线播放| 精品资源在线看| 一区二区三区精品久久久| 97成人在线观看视频| 爱情电影网av一区二区| 日韩激情视频在线| 青娱乐91视频| 美女视频一区二区| 蜜桃视频日韩| 日本aa在线| 欧美福利电影网| 亚洲av综合一区二区| 国产综合久久| 91欧美激情另类亚洲| 免费国产在线视频| 亚洲网友自拍偷拍| 亚洲免费黄色录像| 欧美女王vk| 性色av一区二区咪爱| 国产av精国产传媒| 国产精品乱码妇女bbbb| 成人性视频欧美一区二区三区| 成人福利一区| 色综合91久久精品中文字幕| 一级做a爰片久久毛片16| 91麻豆免费在线观看| 国产毛片久久久久久国产毛片| 全球最大av网站久久| 亚洲女人被黑人巨大进入| 久久黄色小视频| 国产一区二区剧情av在线| 色一情一乱一伦一区二区三欧美 | 免费短视频成人日韩| 欧美大片免费看| 99热这里只有精品9| 国产精品欧美极品| 一区二区三区韩国| 红桃成人av在线播放| 欧洲亚洲妇女av| 日本福利片高清在线观看| 偷窥少妇高潮呻吟av久久免费| 风韵丰满熟妇啪啪区老熟熟女| 91精品国产91久久综合| 91精品国产综合久久久久久蜜臀 | 国产欧美日本一区二区三区| 能在线观看的av| 网曝91综合精品门事件在线| 69精品小视频| 你懂的视频在线免费| 欧美性xxxxxxx| 国产艳俗歌舞表演hd| 国产精品人人爽人人做我的可爱| 久草一区二区| av综合电影网站| 亚洲精品一区二区三区不| 日韩精品一区二区亚洲av| 久久综合久久综合亚洲| 久久9精品区-无套内射无码| 最新亚洲精品| 国产精品自拍网| 麻豆免费在线视频| 欧美一级艳片视频免费观看| 欧美精品入口蜜桃| 不卡电影免费在线播放一区| 亚洲熟妇国产熟妇肥婆| 性欧美lx╳lx╳| 国产激情视频一区| 三级外国片在线观看视频| 6080亚洲精品一区二区| 一区二区成人免费视频| 成人激情校园春色| 欧美三级一级片| 日韩精品一区二区三区免费观看 | 欧美污视频网站| 综合亚洲自拍| 成人国产精品一区| 国内小视频在线看| 亚洲免费伊人电影在线观看av| 精品福利视频一区二区三区| 超碰人人人人人人人| 国产在线一区观看| 我的公把我弄高潮了视频| 日韩动漫一区| 国产在线观看精品一区二区三区| 亚洲妇熟xxxx妇色黄| 日韩精品免费电影| 亚洲一线在线观看| 五月婷婷久久丁香| 一级肉体全黄裸片| 福利电影一区二区三区| 日韩在线xxx| 在线精品视频在线观看高清| 国内一区在线| 伊人久久精品| 欧美孕妇毛茸茸xxxx| 美女av在线播放| 亚洲国产日韩欧美在线动漫| 中文字幕 国产| 亚洲国产精品一区二区www| 亚洲ⅴ国产v天堂a无码二区| 国产91在线观看| 少妇黄色一级片| 亚洲高清自拍| 亚洲一区在线免费| 日本中文字幕在线一区| 147欧美人体大胆444| 高清不卡亚洲| 久久久久久亚洲| 亚乱亚乱亚洲乱妇| 亚洲美腿欧美激情另类| 国产wwwwwww| 欧美日韩一区 二区 三区 久久精品| 久久久久久国产精品免费播放| 欧美激情综合五月色丁香小说| 日本一区二区在线观看视频| 精品亚洲免费视频| 国产xxxxx视频| 国产欧美综合一区二区三区| 久久av高潮av| 亚洲国产一成人久久精品| 任我爽在线视频精品一| 台湾佬综合网| 国产伦精品一区二区三区视频黑人 | 国产成人午夜视频网址| www.youjizz.com在线| 免费99精品国产自在在线| 99riav在线| 国产一区二区三区视频| 欧洲天堂在线观看| 日韩国产高清视频在线| 成人爽a毛片一区二区| 日韩午夜三级在线| 一女二男一黄一片| 欧美日韩一区二区在线视频| 91视频久久久| 日本高清视频一区二区| 亚洲GV成人无码久久精品| 婷婷成人激情在线网| 亚洲国产精一区二区三区性色| 亚洲黄色录像片| 极品颜值美女露脸啪啪| 亚洲精品成人少妇| 免费中文字幕视频| 亚洲一级不卡视频| 国产亚洲欧美精品久久久www | 日本道在线视频| 91精品国产成人观看| 91九色国产ts另类人妖| 亚洲国产日韩欧美在线| 中文字幕色呦呦| 欧美涩涩视频| 波多野结衣乳巨码无在线| 亚洲少妇在线| 日韩视频在线免费看| 日韩经典一区二区| 色噜噜狠狠一区二区| 精品亚洲免费视频| 精品人妻一区二区三区免费| 国产精品一区二区三区99| 日韩精品――色哟哟| 成人做爰69片免费看网站| 女性生殖扒开酷刑vk| 91网站视频在线观看| 免费在线观看你懂的| 国产嫩草影院久久久久| www色aa色aawww| 亚洲成人av电影| 无码人妻熟妇av又粗又大| 欧美色窝79yyyycom| 国产精品羞羞答答在线| 日韩精品中文字幕一区| 三级在线观看| 深夜精品寂寞黄网站在线观看| 成人免费高清| 国内精品久久久久伊人av| 欧美大片免费高清观看| 成人免费大片黄在线播放| 国产一区二区三区亚洲| 日本不卡一二三区| 欧美视频二区| 日本女优爱爱视频| 国产高清视频一区| aaaaa一级片| 18欧美乱大交hd1984| 亚洲国产精品成人无久久精品| 日本韩国欧美国产| www.色呦呦| 中文字幕日韩欧美在线| av手机免费在线观看| 国产男人精品视频| 国产成人精品亚洲线观看| 色视频一区二区三区| 精品福利av| 可以看污的网站| 91在线小视频| 免费中文字幕视频| 欧美日韩一区三区四区| 午夜在线视频观看| 精品久久久91| 亚洲优女在线| av色综合网| 不卡av一区二区| 久久综合九色综合88i| 国产麻豆午夜三级精品| 国产人妻大战黑人20p| 亚洲一本大道在线| 国产又黄又爽视频| 一本色道久久综合狠狠躁篇怎么玩| 黄视频在线免费看| 成人a在线观看| 精品国产精品| 国产精品亚洲αv天堂无码| 国产99久久久久久免费看农村| 日本理论中文字幕| 黑人欧美xxxx| 亚洲精品综合久久| 久久久久www| 六九午夜精品视频| 特级西西444www大精品视频| 一本久道久久久| 精品人妻一区二区免费| 亚洲男人的天堂在线aⅴ视频| 少妇又紧又色又爽又刺激视频 | 欧美日韩二区三区| 免费一级毛片在线观看| 久久人人爽国产| 中文无码日韩欧| 久久国产精品免费观看| 久久国产精品第一页| 色屁屁草草影院ccyy.com| 日韩欧美国产中文字幕| 污污网站免费在线观看| 久久久久久这里只有精品| 国产一区 二区| 91xxx视频| 韩日精品视频一区| 精品无码久久久久成人漫画| 91精品视频网| 顶级网黄在线播放| 亚洲一区二区三区成人在线视频精品 | 国产网站在线看| 亚洲成av人片在线观看香蕉| 国产在线xxx| 国产亚洲一区在线播放| 在线视频精品| 久久精品—区二区三区舞蹈| 欧洲精品视频在线观看| 99reav在线| 91久色国产| 一区二区三区四区五区精品视频| 久久亚洲AV成人无码国产野外| 欧美日韩美女在线| 你懂的在线看| 国产九九精品视频| 久久久久久久久国产一区| 中文在线字幕观看| 婷婷成人激情在线网| 国产精品一区二区婷婷| 国产欧美精品一区二区| 在线看片不卡| 天天插天天射天天干| 色综合 综合色| av在线播放av| 91精品天堂| 在线亚洲伦理| 长河落日免费高清观看| 欧美一级欧美一级在线播放| av免费不卡| 视频一区亚洲| 国产精品影音先锋| 亚洲精品www久久久久久| 亚洲视频在线观看免费| 欧美综合影院| cao在线观看| 国产日韩v精品一区二区| 国产伦精品一区二区三区视频痴汉| 欧美疯狂性受xxxxx另类| 伊人成综合网yiren22| 天堂视频免费看| 亚洲成人激情综合网| 国产三区四区在线观看| 亚洲一区二区三区777| 免费亚洲一区| 日本精品在线免费观看| 亚洲精品suv精品一区二区| 欧美日韩尤物久久| www.亚洲成人网| 欧美激情在线一区二区| 亚洲国产成人一区二区| 国产成人高潮免费观看精品| 91精品天堂福利在线观看| 一起草在线视频| 777色狠狠一区二区三区| 三级中文字幕在线观看| 国产又爽又黄ai换脸| 91欧美一区二区| 国产成人a人亚洲精品无码| 日产精品99久久久久久| 韩日成人在线|