天天看點

TiDB架構中有多少個子產品?核心的元件是哪個?

作者:黑馬程式員

TiDB 叢集主要包括三個核心元件:TiDB Server,PD Server 和 TiKV Server。此外,還有用于解決使用者複雜 OLAP 需求的 TiSpark 元件和簡化雲上部署管理的 TiDB Operator 元件。

TiDB架構中有多少個子產品?核心的元件是哪個?

TiDB架構圖解

TiDB架構中有多少個子產品?核心的元件是哪個?
TiDB架構中有多少個子產品?核心的元件是哪個?

  1. TiDB Server

  TiDB Server 負責接收 SQL 請求,處理 SQL 相關的邏輯,并通過 PD 找到存儲計算所需資料的 TiKV 位址,與 TiKV 互動擷取資料,最終傳回結果。TiDB Server 是無狀态的,其本身并不存儲資料,隻負責計算,可以無限水準擴充,可以通過負載均衡元件(如LVS、HAProxy 或 F5)對外提供統一的接入位址。

  2. PD Server

  Placement Driver (簡稱 PD) 是整個叢集的管理子產品,其主要工作有三個:一是存儲叢集的元資訊(某個 Key 存儲在哪個 TiKV 節點);二是對 TiKV 叢集進行排程和負載均衡(如資料的遷移、Raft group leader 的遷移等);三是配置設定全局唯一且遞增的事務 ID。

  PD 通過 Raft 協定保證資料的安全性。Raft 的 leader server 負責處理所有操作,其餘的 PD server 僅用于保證高可用。建議部署奇數個 PD 節點。

  3. TiKV Server

  TiKV Server 負責存儲資料,從外部看 TiKV 是一個分布式的提供事務的 Key-Value 存儲引擎。存儲資料的基本機關是 Region,每個 Region 負責存儲一個 Key Range(從 StartKey 到 EndKey 的左閉右開區間)的資料,每個 TiKV 節點會負責多個 Region。TiKV 使用 Raft 協定做複制,保持資料的一緻性和容災。副本以 Region 為機關進行管理,不同節點上的多個 Region 構成一個 Raft Group,互為副本。資料在多個 TiKV 之間的負載均衡由 PD 排程,這裡也是以 Region 為機關進行排程。

  4. TiSpark

  TiSpark 作為 TiDB 中解決使用者複雜 OLAP 需求的主要元件,将 Spark SQL 直接運作在 TiDB 存儲層上,同時融合 TiKV 分布式叢集的優勢,并融入大資料社群生态。至此,TiDB 可以通過一套系統,同時支援 OLTP 與 OLAP,免除使用者資料同步的煩惱。

  5. TiDB Operator

  TiDB Operator 提供在主流雲基礎設施(Kubernetes)上部署管理 TiDB 叢集的能力。它結合雲原生社群的容器編排最佳實踐與 TiDB 的專業運維知識,內建一鍵部署、多叢集混部、自動運維、故障自愈等能力,極大地降低了使用者使用和管理 TiDB 的門檻與成本。