TiDB整體架構以及在Mac系統上快速安裝部署TiDB

TiDB整體架構以及在Mac系統上快速安裝部署TiDB

整體架構和三個核心組件

TiDB集羣主要包括三個核心組件:

  • TiKV Server

    ​ 負責存儲數據。是一個分佈式的對外提供事務的Key-Value存儲引擎。

    • 存儲事務的基本單位是Region,每個region負責存儲一個Key Range: [StartKey, EndKey) 的數據,每個 TiKV 節點會負責多個 Region。

    • TiKV 使用Raft 協議做複製,保持數據的一致性和容災。副本以 Region 爲單位進行管理,不同節點上的多個 Region 構成一個 Raft Group,互爲副本。數據在多個 TiKV 之間的負載均衡由 PD 調度,調度的基本單位也是Region

  • 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 通過 Raft 協議保證數據的安全性。Raft 的 leader server 負責處理所有操作,其餘的 PD server 僅用於保證高可 用。建議部署奇數個 PD 節點。

兩大核心特性

  • 無限水平擴展

    包含兩方面:

    • 計算能力

      TiDB Server 負責處理 SQL 請求,隨着業務的增長,可以簡單的添加 TiDB Server 節點,提高整體的處理能力,提供更高的吞吐。

    • 存儲能力

      TiKV 負責存儲數據,隨着數據量的增長,可以部署更多的 TiKV Server 節點解決數據 Scale 的問題。PD 會在 TiKV 節點 之間以 Region 爲單位做調度,將部分數據遷移到新加的節點上。

    -> 部署策略:早期可以部署少量的服務實例,隨着業務增長,按需添加TiKV或TiDB實例。

  • 高可用

    指TiDB/TiKV/PD 這三個組件都能容忍部分實例失效,不影響整個集羣的可用性。

部署

TiDB 可以部署在本地和雲平臺上,支持公有云、私有云和混合雲。常見的TiDB集羣部署方式:

  • 使用Ansible部署:如果用於生產環境,須使用Ansible部署TiDB集羣。

  • 使用Ansible離線部署:如果部署環境無法訪問網絡,可使用Ansible進行離線部署。

  • 使用DockerCompose部署:如果你只是想測試TiDB、體驗TiDB的特性,或者用於開發環境,可以使用

    Docker Compose 在本地快速部署 TiDB 集羣。該部署方式不適用於生產環境。

  • 使用Docker部署:你可以使用Docker部署TiDB集羣,但該部署方式不適用於生產環境。

快速上手_使用DockerCompose部署

在Mac系統上快速安裝TiDB

可以根據官網教程安裝TiDB,有兩種可選環境:Production(生產環境)和 Development(開發環境),這裏我們選擇開發環境。

Homebrew install instructions (Recommended):

  1. Install Homebrew

  2. Install TiDB

    brew tap pingcap/brew
    
    brew install tidb-server
    
  3. Start TiDB

    tidb-server
    
  4. If you would like to connect a MySQL client to TiDB

    brew install mysql-client
    
    mysql -h 127.0.0.1 -P4000 -uroot
    

使用 Docker Compose 快速構建 TiDB 集羣

新手在學習階段想要體驗TiDB特性,快速構建一個開發環境,可以在單機上通過 Docker Compose 快速一鍵部署一套 TiDB 測試集羣。Docker Compose 可以通過一個YAML 文件定義多個容器的應用服務,然後一鍵啓動或停止。

準備環境

• Docker(17.06.0及以上版本)

• DockerCompose

• Git

快速部署

  1. 下載tidb-docker-compose

    git clone https://github.com/pingcap/tidb-docker-compose.git

  2. 創建並啓動集羣

    cd tidb-docker-compose && docker-compose pull # Get the latest Docker images
    docker-compose up -d
    

  1. 訪問集羣

    mysql -h 127.0.0.1 -P 4000 -u root
    


訪問集羣監控頁面:

訪問集羣 Grafana 監控頁面:http://localhost:3000 ,點擊左下角的登陸圖標:

登陸,默認用戶名和密碼均爲 admin。

即可查看整個集羣的狀態:
接下來按照自己需求查看整個集羣概況(Overview),或者查看各個組件的狀態即可。

Referrence

Raft協議詳細解析_如何通過選舉過程保持一致性

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