摘要: 每一年電商雙11大促對阿里技術人都是一次大考,對阿里數據庫團隊更是如此。通過9年的發展,雙11單日交易額從2009年的0.5億一路攀升到2017年的1682億,秒級交易建立峯值達到了32.5萬筆/秒。支撐這一切業務指標的背後,是底層技術體系的一次次迭代升級。數據庫
做者:諶文濤(俞月)後端
每一年電商雙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集羣的發展歷程能夠做爲縮影,表明了阿里巴巴數據庫體系的演進。性能
誕生this
庫存DB集羣誕生於2012年,是業務垂直拆分的產物。庫存最先是商品中心數據庫的一個字段,隨着淘寶業務的複雜化,單一字段已經知足不了基於後端倉儲的庫存管理體系,因此便有了垂直拆分出來的庫存DB集羣。阿里雲
水平拆分spa
2012~2017年,雙11交易額一步步的刷新紀錄,庫存DB集羣的QPS/TPS也實現了幾十倍的增加。水平拆分的基本思路是把數據庫擴展到多個物理節點上,讓每一個節點處理不一樣的讀寫請求,從而緩解單一數據庫的性能問題。blog
藉助於數據庫團隊的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.」