更新時間:2022-10-11 來源:黑馬程序員 瀏覽量:
TiDB 集群主要包括三個核心組件:TiDB Server,PD Server 和 TiKV Server。此外,還有用于解決用戶復(fù)雜 OLAP 需求的 TiSpark 組件和簡化云上部署管理的 TiDB Operator 組件。
TiDB架構(gòu)圖解
1. TiDB Server
TiDB Server 負(fù)責(zé)接收 SQL 請求,處理 SQL 相關(guān)的邏輯,并通過 PD 找到存儲計算所需數(shù)據(jù)的 TiKV 地址,與 TiKV 交互獲取數(shù)據(jù),最終返回結(jié)果。TiDB Server 是無狀態(tài)的,其本身并不存儲數(shù)據(jù),只負(fù)責(zé)計算,可以無限水平擴(kuò)展,可以通過負(fù)載均衡組件(如LVS、HAProxy 或 F5)對外提供統(tǒng)一的接入地址。
2. PD Server
Placement 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)。
3. TiKV Server
TiKV 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)度。
4. TiSpark
TiSpark 作為 TiDB 中解決用戶復(fù)雜 OLAP 需求的主要組件,將 Spark SQL 直接運(yùn)行在 TiDB 存儲層上,同時融合 TiKV 分布式集群的優(yōu)勢,并融入大數(shù)據(jù)社區(qū)生態(tài)。至此,TiDB 可以通過一套系統(tǒng),同時支持 OLTP 與 OLAP,免除用戶數(shù)據(jù)同步的煩惱。
5. TiDB Operator
TiDB Operator 提供在主流云基礎(chǔ)設(shè)施(Kubernetes)上部署管理 TiDB 集群的能力。它結(jié)合云原生社區(qū)的容器編排最佳實(shí)踐與 TiDB 的專業(yè)運(yùn)維知識,集成一鍵部署、多集群混部、自動運(yùn)維、故障自愈等能力,極大地降低了用戶使用和管理 TiDB 的門檻與成本。
Python培訓(xùn):Python日期時間函數(shù)格式是怎樣的?
2022-10-11Python培訓(xùn):函數(shù)的定義和調(diào)用
2022-10-11再升級! 業(yè)務(wù)+技術(shù)并重,Python+大數(shù)據(jù)開發(fā)課程V3.0
2022-10-11傳智教育攜手天津經(jīng)開區(qū)人社局推動職業(yè)技能競賽廣泛開展
2022-10-11傳智教育出席ApacheCon Asia 2022開源大會,分享大數(shù)據(jù)&Python生態(tài)在傳智教育的實(shí)踐和思考
2022-10-11Python培訓(xùn):全局變量和局部變量
2022-10-10