交易日均千萬訂單的儲存架構設計與實踐
來源:京東技術 導讀
在京東物流技術中臺架構升級專案中,物流交易體系以新的接入-交易-履約-執行四層架構進行重新搭建,其中交易訂單負責物流與客戶之間產生物流服務契約的單據流量收口,同時承載向下遊物流履約層分發的職責。在這個大的背景下,交易需支撐日千萬訂單儲存,如何保障訂單資料基座高擴充套件、高可用、高吞吐?
導讀
1.1 業務範圍
服務業務線:快遞、快運、中小件、大件、冷鏈、國際、B2B合同物流、CLPS、京喜、三入三出(採購入、退貨入、調撥入、銷售出、退供出、調撥出)等。
1.2 訂單中心價值
1、解耦(提升系統穩定性)
2、提升新業務接入速度
3、提供全域性化統一資料模型
架構介紹
2.1 整體架構設計
圖1.整體架構
2.2 實時資料層架構設計
2.2.1 系統互動圖
系統互動如下:
圖2.系統互動示意
2.2.2 技術架構圖
圖3.技術架構圖
【讀寫分離架構】採用讀寫分離架構模式(CQRS),將訂單讀寫流量分離,以提高查詢效能和可擴充套件性,同時達到讀、寫解耦。
【快取】使用分散式快取Redis快取熱門訂單資料以及與訂單相關的資訊提高併發和響應速度減少對HBase的訪問,同時,透過主、備、臨時3套高效能快取以提升系統容災能力。
【訊息佇列】使用訊息佇列JMQ實現非同步處理訂單提升系統吞吐量,同時流量削峰減輕直接請求ES、HBase、資料庫的壓力。將不同業務場景(如下單、回傳)使用不同的Topic進行隔離,可以更好地管理和維護;將不同業務使用不同的Topic隔離,可以實現訊息的並行處理和水平擴充套件,提高系統的吞吐量和效能。
【複雜查詢】使用搜尋引擎Elasticsearch解決訂單複雜查詢,先透過Elasticsearch獲取訂單號,然後根據訂單號查詢分散式快取Redis+列式資料庫HBase。
【低成本持久化儲存】採用HBase列式資料庫以支援海量資料規模的儲存和極強的擴充套件能力。
【資料一致性】透過強事務、最終一致、冪等、補償、分散式鎖、版本號等實現。
【多租戶架構】系統中採用多租戶資料模型,將租戶的資料分離儲存,以確保資料的隔離性和安全性。根據不同租戶的需求動態擴充套件系統的容量和資源,可以支援系統的水平擴充套件。透過共享基礎設施和資源,多租戶架構實現了更高的資源利用率和降低成本。
2.3 設計優勢
2.3.1 高可用
應用伺服器、MySQL、Redis、HBase、JMQ等均跨機房部署;ES單機房部署,搭建ES主備雙機房叢集 隔離、限流、熔斷、削峰、監控
2.3.2 高效能
高效能快取 非同步化
2.3.3 海量資料處理
分庫分表 冷熱分離 列式儲存(HBase)
2.3.4 資料安全
敏感資訊加密儲存,Log、Redis、ES、MySQL、HBase等均採用加密儲存,“誰儲存誰加密,誰使用誰解密”。
訂單資料模型
3.1 PDM模型
在訂單模型設計上,基於統一業務屬性、抽象通用模型、歸納共性實體的原則,將訂單模型主要分成了訂單的主檔資訊、訂單的貨品資訊、訂單的物流服務資訊、訂單的營銷資訊、訂單的財務資訊、訂單的客戶渠道資訊、訂單的收發貨資訊、訂單的操作資訊、訂單的擴充套件資訊等幾類。
圖5.
3.2 模型擴充套件性
3.2.1 標準模型擴充套件性設計
3.2.2 個性化業務模型擴充套件性
針對個性化業務,提供了一套可配置的資料庫欄位管理方案,透過開箱即用的一些設定,訂單在提交、修改、查詢時,可以根據業務身份+業務型別+業務欄位找到不同的資料模型以及資料擴充套件編碼,即找到儲存到哪張表哪個欄位。在每張表都預留N個擴充套件屬性,同一個擴充套件屬性,不同的業務身份+業務型別表示不同的含義,以此實現擴充套件儲存。
4.1 訂單個性化查詢
4.2 單元化架構
圖7.
4.3 硬體成本控制
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70027824/viewspace-2991417/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- SpringCloud Alibaba實戰(3:儲存設計與基礎架構設計)SpringGCCloud架構
- 利用儲存的成交訂單,生成實盤交易分析報表
- vivo全球商城:庫存系統架構設計與實踐架構
- 金融行業聯機交易業務場景下的儲存架構設計行業架構
- Shopee ClickHouse 冷熱資料分離儲存架構與實踐架構
- 面向微服務架構設計理念與實踐微服務架構
- 分散式日誌儲存架構程式碼實踐分散式架構
- 私有云基礎架構設計:儲存、網路、計算、安全和應用的設計最佳實踐及案例架構
- 作業幫多雲架構設計與實踐架構
- 千萬級併發架構設計架構
- 如何進行雲端儲存架構框架設計?架構框架
- 容器雲環境下如何設計儲存架構?架構
- DAOS 分散式非同步物件儲存|架構設計分散式非同步物件架構
- Vue 專案架構設計與工程化實踐Vue架構
- vivo 服務端監控架構設計與實踐服務端架構
- vivo 全球商城:商品系統架構設計與實踐架構
- 聊聊「訂單」業務的設計與實現
- 【架構與設計】常見微服務分層架構的區別和落地實踐架構微服務
- 單機秒殺系統的架構設計與實現架構
- 關於訂單庫存扣減的最佳實踐
- Streaming Data Warehouse 儲存:需求與架構架構
- Nebula 架構剖析系列(一)圖資料庫的儲存設計架構資料庫
- SACC2017:資料庫架構設計與實踐的後半生資料庫架構
- Clobotics 計算機視覺場景儲存實踐:多雲架構、 POSIX 全相容、低運維的統一儲存HB計算機視覺架構運維
- 系統設計實踐(02)- 文字儲存服務
- RocketMQ 多級儲存設計與實現MQ
- 短視訊 SDK 架構設計實踐架構
- 分散式儲存單主、多主和無中心架構的特徵與趨勢分散式架構特徵
- 深度解讀KubeEdge架構設計與邊緣AI實踐探索架構AI
- vivo 全球商城:優惠券系統架構設計與實踐架構
- 微服務與領域驅動設計,架構實踐總結微服務架構
- 本地讀寫的多活資料儲存架構設計要義架構
- 新一代雲原生日誌架構 - Loggie的設計與實踐架構
- 新興資料倉儲設計與實踐手冊:從分層架構到實際應用(二)架構
- 新興資料倉儲設計與實踐手冊:從分層架構到實際應用(三)架構
- SAP CRM系統訂單模型的設計與實現模型
- 動態表單儲存設計
- 【RocketMQ】RocketMQ儲存結構設計MQ