首頁技術(shù)文章正文

TiDB架構(gòu)中有多少個模塊?核心的組件是哪個?

更新時間:2022-10-11 來源:黑馬程序員 瀏覽量:

  TiDB 集群主要包括三個核心組件:TiDB Server,PD Server 和 TiKV Server。此外,還有用于解決用戶復(fù)雜 OLAP 需求的 TiSpark 組件和簡化云上部署管理的 TiDB Operator 組件。

TiDB架構(gòu)

TiDB架構(gòu)圖解

Spark SQL

  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 的門檻與成本。

分享到:
在線咨詢 我要報名
和我們在線交談!