學(xué)習(xí)分布式數(shù)據(jù)庫的一點建議
最近陸陸續(xù)續(xù)在后臺看到一些關(guān)于分布式數(shù)據(jù)庫的留言,討論熱度確實挺高,我也忍不住來說兩句。
想到在去年 5 月 20 日,數(shù)據(jù)庫“世界杯”TPC-C 公布,支付寶自研分布式數(shù)據(jù)庫 OceanBase,獲得 7.07 億 tpmC 的超高性能得分,較去年提升了整整近 11 倍,再次超越 Oracle ,刷新世界紀(jì)錄。
這個消息在當(dāng)時無疑是讓人震驚的,這意味著 OceanBase 可能成為全球最快的數(shù)據(jù)庫,要知道一直以來,TPC-C 榜單都是老牌巨頭在競爭,長期被 Oracle、微軟和 IBM 為首的數(shù)據(jù)庫廠商和硬件廠商霸榜。
但可能有些人會疑惑,分布式數(shù)據(jù)庫到底是什么?為什么這么強(qiáng)大?它解決了什么問題?怎么突然就火了?
原因很簡單,就是性能和可靠性。傳統(tǒng)數(shù)據(jù)庫,雖然能夠?qū)⒉糠肿x負(fù)載分流到備機(jī),但主要負(fù)載還在主機(jī)上。所以,早期的方案都是選擇性能和可靠性更好的專用設(shè)備來做主機(jī),比如 IBM 大型機(jī)。
但這有兩個問題,一是大型機(jī)的技術(shù)體系封閉,和主流技術(shù)棧漸行漸遠(yuǎn),甚至這些廠商自己的工程師都后繼無人。二是,因為技術(shù)壟斷,價格相當(dāng)昂貴。多數(shù)普通企業(yè)都難以承受,而且,這少數(shù)的廠商都是國外的巨頭IBM、HP等等。
所以,今天,IBM 大型機(jī)這樣的專用設(shè)備已經(jīng)不再是多數(shù)企業(yè)的可選項,而采用 x86 架構(gòu)的通用設(shè)備在單機(jī)性能和可靠性上都不能滿足要求,因此分布式架構(gòu)就成為了一個必然的選擇。
正是分布式數(shù)據(jù)庫的這些優(yōu)點,近幾年,阿里、騰訊、字節(jié)跳動、美團(tuán)等互聯(lián)網(wǎng)巨頭,以及傳統(tǒng)金融、商業(yè)銀行、電信行業(yè)等都已經(jīng)開始使用,可以說,分布式數(shù)據(jù)庫已經(jīng)成為一種技術(shù)潮流,甚至是新基建的一部分。
比如,除了 OceanBase 現(xiàn)在每年雙十一大促都要秀一下性能之外;還有 TiDB 在努力培育市場,技術(shù)社區(qū)做得有聲有色;GoldenDB 已經(jīng)隨著中信銀行的新一代核心業(yè)務(wù)系統(tǒng)上線投產(chǎn),目前也在平穩(wěn)運(yùn)行;其他分布式數(shù)據(jù)庫包括 CockroachDB、YugabyteDB、TBase...等更多產(chǎn)品,可以說是百花齊放了。
除了龐大的市場需求,一個普通的程序員,為什么要學(xué)習(xí)分布式數(shù)據(jù)庫?在我看來,最重要的是可以通過學(xué)習(xí)它的設(shè)計思想,提高自己的架構(gòu)設(shè)計水平和代碼能力。分布式數(shù)據(jù)庫是學(xué)術(shù)研究與工業(yè)實踐的完美結(jié)合,深入其中你會看到很多極致的設(shè)計方法,這將為你進(jìn)階架構(gòu)師鋪平道路。
有什么辦法,能學(xué)明白分布式數(shù)據(jù)庫呢?
很多人可能會覺得,作為“分布式”和“數(shù)據(jù)庫”的跨學(xué)科產(chǎn)物,它在事務(wù)、原子性、隔離性等概念復(fù)雜;而且主流產(chǎn)品眾多,該怎么做技術(shù)選型也很令人頭疼。
確實如此,所以我也一直在網(wǎng)上找資料,但都非常零散,直到我前段時間看完了極客時間王磊的專欄《分布式數(shù)據(jù)庫30講》,我還挺滿意的。
這個專欄從大家比較熟悉的單體數(shù)據(jù)庫出發(fā),對比學(xué)習(xí),剖析了主流產(chǎn)品的運(yùn)行機(jī)制和理論依據(jù),橫向比較它們的差異,分析這些技術(shù)決策背后的動機(jī),能幫你快速建立起對分布式數(shù)據(jù)庫全面的認(rèn)知體系。
??掃我的二維碼,免費(fèi)試讀
結(jié)算用口令「Happy2021」,再減 ¥10
到手 ¥69,僅限「前 500 人」有效
說到作者王磊,我想簡單介紹一下。他現(xiàn)在是光大銀行首席數(shù)據(jù)架構(gòu)師,前 IBM 咨詢顧問。在數(shù)據(jù)領(lǐng)域有超過 15 年的工作經(jīng)驗,2013 年,他推動了光大銀行從傳統(tǒng)數(shù)據(jù)倉庫向大數(shù)據(jù)生態(tài)的轉(zhuǎn)型,主導(dǎo)了大數(shù)據(jù)開發(fā)平臺、數(shù)據(jù)中臺等多個重要系統(tǒng)的架構(gòu)設(shè)計工作,是大數(shù)據(jù)技術(shù)在金融行業(yè)的第一批踐行者。
講真,我還是非常喜歡這個專欄的。因為我從他的經(jīng)驗中,在架構(gòu)設(shè)計上獲得更多的啟發(fā)。可能有很多朋友還是不知道該怎么學(xué),不過,用老師自己的話說就是,學(xué)習(xí)的關(guān)鍵字在于:找出分布式數(shù)據(jù)庫的學(xué)習(xí)路徑,抓住它的核心內(nèi)容。
那怎么找到這條學(xué)習(xí)路徑呢,這就得從數(shù)據(jù)庫說起了。一個基本運(yùn)行的數(shù)據(jù)庫要做好五件事,存儲、事務(wù)、查詢、復(fù)制和其他。對分布式數(shù)據(jù)庫來說,不僅要繼續(xù)做這五件事,還要多出一件事,分片。在這六件事中,存儲和其他這兩件事與單體數(shù)據(jù)庫差不多,難點就在事務(wù)、查詢、復(fù)制和分片這四件。
分享王磊梳理的一個「分布式數(shù)據(jù)庫學(xué)習(xí)要點圖」,可以幫你避免一下子就陷入安裝部署、操作指令等細(xì)節(jié)中,擺脫學(xué)完以后還是不知道產(chǎn)品原理、碰到?jīng)]見過的問題依然是束手無策的窘境,需要的同學(xué)可以保存下來看看。
我來講講這門專欄是如何講解分布式數(shù)據(jù)庫的吧?這個專欄可以說非常系統(tǒng)了,總共分為 3 個方面:
夯實基礎(chǔ),建立整體認(rèn)知
概念篇:顧名思義,主要介紹分布式數(shù)據(jù)庫的基本概念、主流產(chǎn)品的架構(gòu)框架和一些基本功能,以及分布式數(shù)據(jù)庫設(shè)計的難點。
從問題到解決方案,再到產(chǎn)品實現(xiàn)
開發(fā)篇:會和你從分布式事務(wù)、跨節(jié)點查詢、單體數(shù)據(jù)庫的特性這三個維度出發(fā),帶你深入到一個個關(guān)鍵功能的設(shè)計中,挖掘其背后可選擇的理論設(shè)計方案,分析方案之間的差異,以及工業(yè)界產(chǎn)品在方案落地實現(xiàn)時的改進(jìn)。
選型實踐 + 產(chǎn)品圖鑒
實踐篇:會聚焦于架構(gòu)選型,告訴你在企業(yè)中引入分布式數(shù)據(jù)庫需要關(guān)注哪些事情、做些什么準(zhǔn)備,比如會給運(yùn)維帶來哪些沖擊、怎么去做測試,基于什么原因你要選擇哪些分布式數(shù)據(jù)庫。最終,為你梳理一份分布式數(shù)據(jù)庫產(chǎn)品圖鑒,帶你一起檢閱這個時代最酷的基礎(chǔ)軟件。
來看看目錄,你可以找到你想要的??
訂閱福利
??掃我的二維碼,免費(fèi)試讀
結(jié)算用口令「Happy2021」,再減 ¥10
到手 ¥69,僅限「前 100 人」有效
走心的努力,才算真的努力。2 杯奶茶的價格,拿下這套分布式數(shù)據(jù)庫方法論,值了??
