更新時(shí)間:2022年10月11日17時(shí)17分 來(lái)源:傳智教育 瀏覽次數(shù):
TiDB 集群主要包括三個(gè)核心組件:TiDB Server,PD Server 和 TiKV Server。此外,還有用于解決用戶(hù)復(fù)雜 OLAP 需求的 TiSpark 組件和簡(jiǎn)化云上部署管理的 TiDB Operator 組件。
TiDB架構(gòu)圖解
1. TiDB Server
TiDB Server 負(fù)責(zé)接收 SQL 請(qǐng)求,處理 SQL 相關(guān)的邏輯,并通過(guò) PD 找到存儲(chǔ)計(jì)算所需數(shù)據(jù)的 TiKV 地址,與 TiKV 交互獲取數(shù)據(jù),最終返回結(jié)果。TiDB Server 是無(wú)狀態(tài)的,其本身并不存儲(chǔ)數(shù)據(jù),只負(fù)責(zé)計(jì)算,可以無(wú)限水平擴(kuò)展,可以通過(guò)負(fù)載均衡組件(如LVS、HAProxy 或 F5)對(duì)外提供統(tǒng)一的接入地址。
2. PD Server
Placement Driver (簡(jiǎn)稱(chēng) PD) 是整個(gè)集群的管理模塊,其主要工作有三個(gè):一是存儲(chǔ)集群的元信息(某個(gè) Key 存儲(chǔ)在哪個(gè) TiKV 節(jié)點(diǎn));二是對(duì) TiKV 集群進(jìn)行調(diào)度和負(fù)載均衡(如數(shù)據(jù)的遷移、Raft group leader 的遷移等);三是分配全局唯一且遞增的事務(wù) ID。
PD 通過(guò) Raft 協(xié)議保證數(shù)據(jù)的安全性。Raft 的 leader server 負(fù)責(zé)處理所有操作,其余的 PD server 僅用于保證高可用。建議部署奇數(shù)個(gè) PD 節(jié)點(diǎn)。
3. TiKV Server
TiKV Server 負(fù)責(zé)存儲(chǔ)數(shù)據(jù),從外部看 TiKV 是一個(gè)分布式的提供事務(wù)的 Key-Value 存儲(chǔ)引擎。存儲(chǔ)數(shù)據(jù)的基本單位是 Region,每個(gè) Region 負(fù)責(zé)存儲(chǔ)一個(gè) Key Range(從 StartKey 到 EndKey 的左閉右開(kāi)區(qū)間)的數(shù)據(jù),每個(gè) TiKV 節(jié)點(diǎn)會(huì)負(fù)責(zé)多個(gè) Region。TiKV 使用 Raft 協(xié)議做復(fù)制,保持?jǐn)?shù)據(jù)的一致性和容災(zāi)。副本以 Region 為單位進(jìn)行管理,不同節(jié)點(diǎn)上的多個(gè) Region 構(gòu)成一個(gè) Raft Group,互為副本。數(shù)據(jù)在多個(gè) TiKV 之間的負(fù)載均衡由 PD 調(diào)度,這里也是以 Region 為單位進(jìn)行調(diào)度。
4. TiSpark
TiSpark 作為 TiDB 中解決用戶(hù)復(fù)雜 OLAP 需求的主要組件,將 Spark SQL 直接運(yùn)行在 TiDB 存儲(chǔ)層上,同時(shí)融合 TiKV 分布式集群的優(yōu)勢(shì),并融入大數(shù)據(jù)社區(qū)生態(tài)。至此,TiDB 可以通過(guò)一套系統(tǒng),同時(shí)支持 OLTP 與 OLAP,免除用戶(hù)數(shù)據(jù)同步的煩惱。
5. TiDB Operator
TiDB Operator 提供在主流云基礎(chǔ)設(shè)施(Kubernetes)上部署管理 TiDB 集群的能力。它結(jié)合云原生社區(qū)的容器編排最佳實(shí)踐與 TiDB 的專(zhuān)業(yè)運(yùn)維知識(shí),集成一鍵部署、多集群混部、自動(dòng)運(yùn)維、故障自愈等能力,極大地降低了用戶(hù)使用和管理 TiDB 的門(mén)檻與成本。
數(shù)據(jù)分析工具Pandas:算術(shù)運(yùn)算與數(shù)據(jù)對(duì)齊
2022-10-07抓住機(jī)會(huì)有多重要?未來(lái)大數(shù)據(jù)行業(yè)的機(jī)遇在...
2022-10-06Python中怎么定義類(lèi)?【Pyhont面試題】
2022-10-06大數(shù)據(jù)培訓(xùn):數(shù)據(jù)分析的三大特征是什么?
2022-09-28Python中的集合關(guān)系都有哪些?【集合關(guān)系介紹】
2022-09-27Python中如何構(gòu)建元組?
2022-09-27北京校區(qū)