2017雙11技術揭祕—阿里巴巴資料庫技術架構演進
作者:諶文濤(俞月)
每年電商雙11大促對阿里技術人都是一次大考,對阿里資料庫團隊更是如此。經過9年的發展,雙11單日交易額從2009年的0.5億一路攀升到2017年的1682億,秒級交易建立峰值達到了32.5萬筆/秒。支撐這一切業務指標的背後,是底層技術體系的一次次迭代升級。
阿里巴巴資料庫系統經歷了10多年的發展,今年正式確定從 第三代大規模分庫分表 向 第四代X-DB分散式資料庫系統 演進的目標。X-DB分散式資料庫的落地已經在2017年雙11大促中獲得了可行性驗證,同時底層開始引入儲存計算分離架構。分散式在系統穩定性、容災能力、容量擴充套件性、技術體系內聚性上有了質的提升,今年雙11開啟了阿里資料庫技術架構新的篇章。
本文以阿里電商交易鏈路中的核心繫統庫存中心為例,一窺阿里集團資料資料庫的發展歷程。庫存中心資料庫叢集(簡稱庫存DB叢集),從2012年獨立拆分後,其發展可以概括為以下3個階段:
- 2012~2013年:分庫分表水平拆分,構建大規模資料庫叢集
- 2014~2016年:單元化異地多活架構,資料多單元間同步
- 2017年:X-DB 1.0分散式叢集部署上線,新的起點
作為阿里資料庫體系中的核心繫統,庫存DB叢集的發展歷程可以作為縮影,代表了阿里巴巴資料庫體系的演進。
誕生
庫存DB叢集誕生於2012年,是業務垂直拆分的產物。庫存最早是商品中心資料庫的一個欄位,隨著淘寶業務的複雜化,單一欄位已經滿足不了基於後端倉儲的庫存管理體系,所以便有了垂直拆分出來的庫存DB叢集。
水平拆分
2012~2017年,雙11交易額一步步的重新整理紀錄,庫存DB叢集的QPS/TPS也實現了幾十倍的增長。水平拆分的基本思路是把資料庫擴充套件到多個物理節點上,讓每個節點處理不同的讀寫請求,從而緩解單一資料庫的效能問題。
藉助於資料庫團隊的DTS(Data Transmission Service)產品,庫存中心進行了大規模的水平拆分,分庫和分表數量擴充套件到最初的幾百倍,平穩的支撐了這一個階段業務的快速發展。與此同時,在熱點商品扣減、防超賣資料強一致需求、跨城異地容災資料質量問題、業務資料量急劇膨脹、超大規模資料庫叢集運維等問題點上,迫切需要新一代架構來解決。
異地多活單元化
2014~2015年,為了進一步提升使用者的購物體驗,庫存DB叢集與主站交易鏈路一同做了單元化部署。單元化很大程度上解決了買家的使用體驗問題,在本單元內封閉完成讀寫操作。但是對於賣家維度的資料,比如編輯商品、扣減庫存,就會涉及到跨單元中心去寫。關於單元化架構,之前已經有了很多介紹。
有了多個單元,對於底層資料庫來說,面臨的最大挑戰就是資料同步,因為對於單元封閉的買家維度的資料,需要把單元的資料全部同步到中心;對於讀寫分離型別的業務,我們要把中心的資料同步到單元。這條資料通道就是依靠DRC(Data Replication Center)來完成。
如今,DRC不僅成為集團單元化鏈路的基礎設施,對應的雲產品DTS已經從2016年開始讓阿里雲使用者、聚石塔商家低成本的搭建異地容災。單元化架構給庫存DB叢集帶來的最大挑戰是多單元間的資料強一致問題,我們也為此做了很大的努力。
X-DB分散式叢集
2017年雙11,庫存DB叢集第一次使用X-DB 1.0分散式叢集部署,平穩的支援了32.5萬筆/秒的交易建立峰值。X-DB是阿里巴巴自研高效能分散式可全球化部署資料庫,其核心技術目標概括為以下6點:
- 100%相容MySQL生態,應用無縫遷移
- 跨AZ、Region的全球化部署能力,5個9以上的可用率
- 自動化的資料Sharding,計算、儲存均可水平擴充套件
- 高效能的事務處理,相同硬體下達到MySQL 10倍的事務處理能力,百萬TPS
- 自動化的資料冷熱分離,儲存成本為MySQL的1/10
- 計算儲存分離,儲存按需擴充套件
庫存DB叢集雙十一部署架構:
正是由於X-DB提供了全面相容MySQL、高效能、低成本、跨城容災、資料強一致的能力。在2017年年初,資料庫團隊和業務研發團隊確定了在庫存中心部署X-DB 1.0的目標,解決業務目前面臨的痛點:
- 全面相容MySQL,實現業務系統平滑遷入
- 極致效能,雙11單例項熱點扣減峰值TPS是去年的3倍
- 低成本,相比於傳統的單元化主備架構部署,減少2個資料副本以及單元間資料同步資源成本
- 跨城容災,藉助Batching和Pipelining技術實現跨城強同步場景吞吐量幾乎無衰減
- 資料強一致,藉助Paxos協議提供多單元間資料強一致能力;批量關閉中心叢集全部例項,叢集30秒內完成單元選主切換,資料零丟失
- 計算儲存分離,徹底解決傳統機型計算資源和儲存資源固定配比問題,搭配容器化技術,大促峰值期間將資料庫彈性部署執行在離線任務主機,落地零擴容成本支援雙十一大促
X-DB首次亮相在2017年雙11的舞臺,平穩支撐零點峰值32.5萬筆/秒,開啟了阿里資料庫體系從分庫分表時代向分散式叢集時代的大門。技術之路永無止境,我們今天的技術現狀離業務對我們的要求還有很大的差距。但是千里之行,始於足下,借用《魔戒》裡的經典臺詞:“There’s some good in this world, Mr. Frodo. And it’s worth fighting for.”
相關文章
- PingCode 技術架構揭祕GC架構
- PingCode Flow技術架構揭祕GC架構
- 技術架構演進的思考架構
- Google大資料技術架構探祕Go大資料架構
- 餘額寶技術架構及演進架構
- 大型網站技術架構的演進網站架構
- OPPO雲資料庫訪問服務技術揭祕資料庫
- 技術架構分享:美團配送系統架構演進實踐架構
- 大型網站的技術架構演進過程網站架構
- 揭祕《Arduino技術內幕》UI
- 【IT技術】阿里RDS首席產品架構師何雲飛:阿里雲資料庫的架構演進之路阿里架構資料庫
- Ceph儲存後端ObjectStore架構和技術演進後端Object架構
- 彩虹橋架構演進之路-效能篇|得物技術架構
- 2017雙11交易系統TMF2.0技術揭祕,實現全鏈路管理
- 遊戲反外掛技術揭祕遊戲
- Taro 技術揭祕:taro-cli
- 揭祕GitHub CSS技術細節GithubCSS
- 分散式資料庫技術的演進和發展方向分散式資料庫
- 高德客戶端及引擎技術架構演進與思考客戶端架構
- 智慧安全3.0實踐|SASE技術架構的演進之路架構
- iOS資料庫技術進階iOS資料庫
- 前端技術演進(七):前端跨棧技術前端
- DTCC演講 | PolarDB-X技術架構:雲原生分散式資料庫架構分散式資料庫
- Taro 技術揭祕之taro-cli
- 技術沙龍 | 雲時代下的架構演進—企業雲及雲原生技術落地實踐架構
- LLM大模型向量資料庫技術架構淺析大模型資料庫架構
- 前端技術演進(一):Web前端技術基礎前端Web
- 閒魚基於Flutter技術的架構演進和創新Flutter架構
- 凹凸技術揭祕 · 基礎服務體系 · 構築服務端技術中樞服務端
- 資料庫審計技術進化資料庫
- 資料儲存技術的演進趨勢研判
- 評《資料原生的金融技術架構》架構
- 深度揭祕:大資料時代企業賣技術還是賣資料?大資料
- 跨平臺技術演進
- jaeger的技術演進之路
- 移動端技術演進
- WEB 架構技術Web架構
- VMware的雲原生應用技術揭祕