TiDB整體架構介紹

chenfeng發表於2019-01-14

TiDB架構圖如下



TiDB 叢集主要分為三個元件:


TiDB Server


TiDB Server 負責接收 SQL 請求,處理 SQL 相關的邏輯,並透過 PD 找到儲存計算所需資料的 TiKV 地址, 與 TiKV 互動

獲取資料,最終返回結果。 TiDB Server 是無狀態的,其本身並不儲存資料,只負責計算,可以無限水平擴充套件, 可以透過

負載均衡元件(如LVS、HAProxy 或 F5)對外提供統一的接入地址。

// 類比MongoDB分片叢集中的mongos或者叫router server


PD Server


Placement Driver (簡稱 PD) 是整個叢集的管理模組,其主要工作有三個: 一是儲存叢集的元資訊(某個 Key 儲存在哪個 

TiKV 節點); 二是對 TiKV 叢集進行排程和負載均衡(如資料的遷移、Raft group leader 的遷移等);三是分配全域性唯一

且遞增的事務 ID。


PD 是一個叢集,需要部署奇數個節點,一般線上推薦至少部署 3 個節點。

//類比MongoDB分片叢集中的config server


TiKV Server


TiKV Server 負責儲存資料,從外部看 TiKV 是一個分散式的提供事務的 Key-Value 儲存引擎。儲存資料的基本單位是 

Region, 每個 Region 負責儲存一個 Key Range (從 StartKey 到 EndKey 的左閉右開區間)的資料, 每個 TiKV 

節點會負責多個 Region 。TiKV 使用 Raft 協議做複製,保持資料的一致性和容災。 副本以 Region 為單位進行管理,

不同節點上的多個 Region 構成一個 Raft Group,互為副本。 資料在多個 TiKV 之間的負載均衡由 PD 排程,

這裡也是以 Region 為單位進行排程。

//類比MongoDB分片叢集中的replica set

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/15498/viewspace-2557202/,如需轉載,請註明出處,否則將追究法律責任。

相關文章