TiDB 簡介![]() TiDB 是 PingCAP 公司設(shè)計(jì)的開源分布式 HTAP (Hybrid Transactional and Analytical Processing) 數(shù)據(jù)庫,結(jié)合了傳統(tǒng)的 RDBMS 和 NoSQL 的最佳特性。TiDB 兼容 MySQL,支持無限的水平擴(kuò)展,具備強(qiáng)一致性和高可用性。TiDB 的目標(biāo)是為 OLTP (Online Transactional Processing) 和 OLAP (Online Analytical Processing) 場景提供一站式的解決方案。
TiDB 具備如下特性
TiDB 的設(shè)計(jì)目標(biāo)是 100% 的 OLTP 場景和 80% 的 OLAP 場景,更復(fù)雜的 OLAP 分析可以通過 TiSpark 項(xiàng)目來完成。 TiDB 對業(yè)務(wù)沒有任何侵入性,能優(yōu)雅的替換傳統(tǒng)的數(shù)據(jù)庫中間件、數(shù)據(jù)庫分庫分表等 Sharding 方案。同時它也讓開發(fā)運(yùn)維人員不用關(guān)注數(shù)據(jù)庫 Scale 的細(xì)節(jié)問題,專注于業(yè)務(wù)開發(fā),極大的提升研發(fā)的生產(chǎn)力。 三篇文章了解 TiDB 技術(shù)內(nèi)幕: TiDB 整體架構(gòu)要深入了解 TiDB 的水平擴(kuò)展和高可用特點(diǎn),首先需要了解 TiDB 的整體架構(gòu)。TiDB 集群主要包括三個核心組件:TiDB Server,PD Server 和 TiKV Server。此外,還有用于解決用戶復(fù)雜 OLAP 需求的 TiSpark 組件。 ![]() TiDB ServerTiDB Server 負(fù)責(zé)接收 SQL 請求,處理 SQL 相關(guān)的邏輯,并通過 PD 找到存儲計(jì)算所需數(shù)據(jù)的 TiKV 地址,與 TiKV 交互獲取數(shù)據(jù),最終返回結(jié)果。TiDB Server 是無狀態(tài)的,其本身并不存儲數(shù)據(jù),只負(fù)責(zé)計(jì)算,可以無限水平擴(kuò)展,可以通過負(fù)載均衡組件(如LVS、HAProxy 或 F5)對外提供統(tǒng)一的接入地址。 PD ServerPlacement Driver (簡稱 PD) 是整個集群的管理模塊,其主要工作有三個:一是存儲集群的元信息(某個 Key 存儲在哪個 TiKV 節(jié)點(diǎn));二是對 TiKV 集群進(jìn)行調(diào)度和負(fù)載均衡(如數(shù)據(jù)的遷移、Raft group leader 的遷移等);三是分配全局唯一且遞增的事務(wù) ID。 PD 通過 Raft 協(xié)議保證數(shù)據(jù)的安全性。Raft 的 leader server 負(fù)責(zé)處理所有操作,其余的 PD server 僅用于保證高可用。建議部署奇數(shù)個 PD 節(jié)點(diǎn)。 TiKV ServerTiKV Server 負(fù)責(zé)存儲數(shù)據(jù),從外部看 TiKV 是一個分布式的提供事務(wù)的 Key-Value 存儲引擎。存儲數(shù)據(jù)的基本單位是 Region,每個 Region 負(fù)責(zé)存儲一個 Key Range(從 StartKey 到 EndKey 的左閉右開區(qū)間)的數(shù)據(jù),每個 TiKV 節(jié)點(diǎn)會負(fù)責(zé)多個 Region。TiKV 使用 Raft 協(xié)議做復(fù)制,保持?jǐn)?shù)據(jù)的一致性和容災(zāi)。副本以 Region 為單位進(jìn)行管理,不同節(jié)點(diǎn)上的多個 Region 構(gòu)成一個 Raft Group,互為副本。數(shù)據(jù)在多個 TiKV 之間的負(fù)載均衡由 PD 調(diào)度,這里也是以 Region 為單位進(jìn)行調(diào)度。 TiSparkTiSpark 作為 TiDB 中解決用戶復(fù)雜 OLAP 需求的主要組件,將 Spark SQL 直接運(yùn)行在 TiDB 存儲層上,同時融合 TiKV 分布式集群的優(yōu)勢,并融入大數(shù)據(jù)社區(qū)生態(tài)。至此,TiDB 可以通過一套系統(tǒng),同時支持 OLTP 與 OLAP,免除用戶數(shù)據(jù)同步的煩惱。 TiDB 部署方式TiDB 可以部署在本地和云平臺上,支持公有云、私有云和混合云。你可以根據(jù)實(shí)際場景或需求,選擇相應(yīng)的方式來部署 TiDB 集群:
TiDB 軟件和硬件環(huán)境建議配置TiDB 作為一款開源分布式 NewSQL 數(shù)據(jù)庫,可以很好的部署和運(yùn)行在 Intel 架構(gòu)服務(wù)器環(huán)境及主流虛擬化環(huán)境,并支持絕大多數(shù)的主流硬件網(wǎng)絡(luò)。作為一款高性能數(shù)據(jù)庫系統(tǒng),TiDB 支持主流的 Linux 操作系統(tǒng)環(huán)境。 Linux 操作系統(tǒng)版本要求
TiDB 項(xiàng)目源碼TiDB 集群所有組件的源碼均可從 GitHub 上直接訪問。 TiDB 用戶案例
TiDB 更多支持TiDB文檔:https://www./docs-cn/ |
|