TIDB 初識

一 概念:

  • TiDB 是 分佈式 HTAP (Hybrid Transactional and Analytical Processing) 數據庫
  • 結合了傳統的 RDBMS 和 NoSQL 的最佳特性
  • TiDB 兼容 MySQL,支持無限的水平擴展,具備強一致性和高可用性
  • TiDB 的目標是爲 OLTP (Online Transactional Processing) 和 OLAP (Online Analytical Processing) 場景提供一站式的解決方案

二 特點

  • 高度兼容 MySQL : 無需修改代碼即可從 MySQL 輕鬆遷移至 TiDB,分庫分表後的 MySQL 集羣亦可通過 TiDB 工具進行實時遷移。
  • 水平彈性擴展 :通過簡單地增加新節點即可實現 TiDB 的水平擴展,按需擴展吞吐或存儲,輕鬆應對高併發、海量數據場景
  • 分佈式事務:TiDB 100% 支持標準的 ACID 事務。
  • 真正金融級高可用:相比於傳統主從 (M-S) 複製方案,基於 Raft 的多數派選舉協議可以提供金融級的 100% 數據強一致性保證,且在不丟失大多數副本的前提下,可以實現故障的自動恢復 (auto-failover),無需人工介入。
  • 一站式 HTAP 解決方案:TiDB 作爲典型的 OLTP 行存數據庫,同時兼具強大的 OLAP 性能,配合 TiSpark,可提供一站式 HTAP 解決方案,一份存儲同時處理 OLTP & OLAP,無需傳統繁瑣的 ETL 過程。
  • 雲原生 SQL 數據庫:TiDB 是爲雲而設計的數據庫,支持公有云、私有云和混合雲,使部署、配置和維護變得十分簡單。

TiDB 的設計目標是 100% 的 OLTP 場景和 80% 的 OLAP 場景,更復雜的 OLAP 分析可以通過 TiSpark 項目來完成。

TiDB 對業務沒有任何侵入性,能優雅的替換傳統的數據庫中間件、數據庫分庫分表等 Sharding 方案。同時它也讓開發運維人員不用關注數據庫 Scale 的細節問題,專注於業務開發,極大的提升研發的生產力。

三 架構

orma

四 架構分析

TiDB 集羣主要分爲三個組件:

TiDB Server:

TiDB Server 負責接收 SQL 請求,處理 SQL 相關的邏輯,並通過 PD 找到存儲計算所需數據的 TiKV 地址,與 TiKV 交互獲取數據,最終返回結果。 TiDB Server 是無狀態的,其本身並不存儲數據,只負責計算,可以無限水平擴展,可以通過負載均衡組件(如LVS、HAProxy 或 F5)對外提供統一的接入地址。

PD Server:

Placement Driver (簡稱 PD) 是整個集羣的管理模塊,其主要工作有三個: 一是存儲集羣的元信息(某個 Key 存儲在哪個 TiKV 節點);二是對 TiKV 集羣進行調度和負載均衡(如數據的遷移、Raft group leader 的遷移等);三是分配全局唯一且遞增的事務 ID。

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 爲單位進行調度。

文章來自 https://www.pingcap.com/docs-cn/ ,https://blog.csdn.net/a69187711/article/details/80496927

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章