TiDB

1.TiDB簡介

最近所接觸的項目均用到了TiDB,於是乎查閱官方相關文檔研究了下,對TiDB重點知識進行了總結。

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

TiDB特性:

  • 高度兼容MySql

      在絕大部分情況下,無需修改代碼即可從MySql遷移至TiDB。

  • 水平彈性擴展

      通過簡單地增加新節點就可以實現TiDB的水平擴展。

  • 分佈式事務

      TiDB100%支持標準的ACID事務。

  • 真正金融級高可用

      相比於傳統主從(M-S)複製方案,基於Raft的多數派選舉協議可以提供金融級的100%數據強一致性保 證,且在不丟失大多數副本的前提下,可以實現故障的自動恢復(auto-failover),無需人工介入。

  • 一站式HTAP解決方案

      TiDB作爲典型的OLTP行存數據庫,同時兼具強大的OLAP性能,配合TiSpark,可提供一站式HTAP解決方案,一份存儲同時處理OLTP&OLAP,無需傳統繁瑣的ETL過程。

  • 雲原生SQL數據庫

    TiDB是爲雲而設計的數據庫,支持公有云、私有云和混合雲,配合TiDBOperator項目可實現自動化運維, 使部署、配置和維護變得十分簡單。

2.TiDB架構

     要深入瞭解TiDB的水平擴展和高可用特點,首先需要了解TiDB的整體架構。TiDB集羣主要包括三個核心組件: TiDB Server,PD Server和TiKV Server。

TiDB架構圖:

               image

 

 

2.1TiDB Server

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

2.2PD Server

PlacementDriver(簡稱PD)是整個集羣的管理模塊,其主要工作有三個:一是存儲集羣的元信息(某個Key存儲 在哪個TiKV節點);二是對TiKV集羣進行調度和負載均衡(如數據的遷移、Raftgroupleader的遷移等);三是分 配全局唯一且遞增的事務ID。 PD通過Raft協議保證數據的安全性。Raft的leader server負責處理所有操作,其餘的PD server僅用於保證高可 用。建議部署奇數個PD節點。

2.3TiKV Server

TiKVServer負責存儲數據,從外部看TiKV是一個分佈式的提供事務的Key-Value存儲引擎。存儲數據的基本單位 是Region,每個Region負責存儲一個KeyRange(從StartKey到EndKey的左閉右開區間)的數據,每個TiKV節點 會負責多個Region。TiKV使用Raft協議做複製,保持數據的一致性和容災。副本以Region爲單位進行管理,不 同節點上的多個Region構成一個Raft Group,互爲副本。數據在多個TiKV之間的負載均衡由PD調度,這裏也 是以Region爲單位進行調度。

2.4TiSpark

TiSpark作爲TiDB中解決用戶複雜OLAP需求的主要組件,將SparkSQL直接運行在TiDB存儲層上,同時融合TiKV 分佈式集羣的優勢,並融入大數據社區生態。至此,TiDB可以通過一套系統,同時支持OLTP與OLAP,免除用 戶數據同步的煩惱。

2.5TiDB Operator

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

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