首頁技術文章正文

TiDB的核心特性有哪些?

更新時間:2021-10-06 來源:黑馬程序員 瀏覽量:

IT培訓班

TiDB 具備如下眾多特性,其中兩大核心特性為:水平擴展與高可用。

1. 高度兼容 MySQL
大多數(shù)情況下,無需修改代碼即可從 MySQL 輕松遷移至 TiDB,分庫分表后的 MySQL 集群亦可通過 TiDB 工具進行實時遷移。
對于用戶使用的時候,可以透明地從MySQL切換到TiDB 中,只是“新MySQL”的后端是存儲“無限的”,不再受制于Local的磁盤容量。在運維使用時也可以將TiDB當做一個從庫掛到MySQL主從架構(gòu)中。
 
2. 分布式事務
TiDB 100% 支持標準的 ACID 事務。
 
3. 一站式 HTAP 解決方案
HTAP: Hybrid Transactional/Analytical Processing
TiDB 作為典型的 OLTP 行存數(shù)據(jù)庫,同時兼具強大的 OLAP 性能,配合 TiSpark,可提供一站式 HTAP 解決方案,一份存儲同時處理 OLTP & OLAP,無需傳統(tǒng)繁瑣的 ETL 過程。
 
4. 云原生 SQL 數(shù)據(jù)庫
TiDB 是為云而設計的數(shù)據(jù)庫,支持公有云、私有云和混合云,配合 TiDB Operator 項目 可實現(xiàn)自動化運維,使部署、配置和維護變得十分簡單。
 
5. 水平彈性擴展
通過簡單地增加新節(jié)點即可實現(xiàn) TiDB 的水平擴展,按需擴展吞吐或存儲,輕松應對高并發(fā)、海量數(shù)據(jù)場景。
 
6. 真正金融級高可用
相比于傳統(tǒng)主從 (M-S) 復制方案,基于 Raft 的多數(shù)派選舉協(xié)議可以提供金融級的 100% 數(shù)據(jù)強一致性保證,且在不丟失大多數(shù)副本的前提下,可以實現(xiàn)故障的自動恢復 (auto-failover),無需人工介入。

水平擴展的特點:
無限水平擴展是 TiDB 的一大特點,這里說的水平擴展包括兩方面:計算能力(TiDB)和存儲能力(TiKV)。
TiDB Server 負責處理 SQL 請求,隨著業(yè)務的增長,可以簡單的添加 TiDB Server 節(jié)點,提高整體的處理能力,提供更高的吞吐。
TiKV 負責存儲數(shù)據(jù),隨著數(shù)據(jù)量的增長,可以部署更多的 TiKV Server 節(jié)點解決數(shù)據(jù) Scale 的問題。
PD 會在 TiKV 節(jié)點之間以 Region 為單位做調(diào)度,將部分數(shù)據(jù)遷移到新加的節(jié)點上。
所以在業(yè)務的早期,可以只部署少量的服務實例(推薦至少部署 3 個 TiKV, 3 個 PD,2 個 TiDB),隨著業(yè)務量的增長,按照需求添加 TiKV 或者 TiDB 實例。


高可用特點:

TiDB的核心特性
高可用是 TiDB 的另一大特點,TiDB/TiKV/PD 這三個組件都能容忍部分實例失效,不影響整個集群的可用性。下面分別說明這三個組件的可用性、單個實例失效后的后果以及如何恢復。
1. TiDB
TiDB 是無狀態(tài)的,推薦至少部署兩個實例,前端通過負載均衡組件對外提供服務。當單個實例失效時,會影響正在這個實例上進行的 Session,從應用的角度看,會出現(xiàn)單次請求失敗的情況,重新連接后即可繼續(xù)獲得服務。單個實例失效后,可以重啟這個實例或者部署一個新的實例。
 
2. PD
PD 是一個集群,通過 Raft 協(xié)議保持數(shù)據(jù)的一致性,單個實例失效時,如果這個實例不是 Raft 的 leader,那么服務完全不受影響;如果這個實例是 Raft 的 leader,會重新選出新的 Raft leader,自動恢復服務。PD 在選舉的過程中無法對外提供服務,這個時間大約是3秒鐘。推薦至少部署三個 PD 實例,單個實例失效后,重啟這個實例或者添加新的實例。
 
3. TiKV
TiKV 是一個集群,通過 Raft 協(xié)議保持數(shù)據(jù)的一致性(副本數(shù)量可配置,默認保存三副本),并通過 PD 做負載均衡調(diào)度。單個節(jié)點失效時,會影響這個節(jié)點上存儲的所有 Region。對于 Region 中的 Leader 節(jié)點,會中斷服務,等待重新選舉;對于 Region 中的 Follower 節(jié)點,不會影響服務。當某個 TiKV 節(jié)點失效,并且在一段時間內(nèi)(默認 30 分鐘)無法恢復,PD 會將其上的數(shù)據(jù)遷移到其他的 TiKV 節(jié)點上。


TiDB 存儲和計算能力

TiDB的核心特性

存儲能力-TiKV-LSM

TiKV Server通常是3+的,TiDB每份數(shù)據(jù)缺省為3副本,這一點與HDFS有些相似,但是通過Raft協(xié)議進行數(shù)據(jù)復制,TiKV Server上的數(shù)據(jù)的是以Region為單位進行,由PD Server集群進行統(tǒng)一調(diào)度,類似HBASE的Region調(diào)度。
TiKV集群存儲的數(shù)據(jù)格式是KV的,在TiDB中,并不是將數(shù)據(jù)直接存儲在 HDD/SSD中,而是通過RocksDB實現(xiàn)了TB級別的本地化存儲方案,著重提的一點是:RocksDB和HBASE一樣,都是通過 LSM樹作為存儲方案,避免了B+樹葉子節(jié)點膨脹帶來的大量隨機讀寫。從何提升了整體的吞吐量。
 

計算能力-TiDB Server
TiDB Server本身是無狀態(tài)的,意味著當計算能力成為瓶頸的時候,可以直接擴容機器,對用戶是透明的。理論上TiDB Server的數(shù)量并沒有上限限制。
 

總結(jié)

TiDB作為新一代的NewSQL數(shù)據(jù)庫,在數(shù)據(jù)庫領域已經(jīng)逐漸站穩(wěn)腳跟,結(jié)合了Etcd/MySQL/HDFS/HBase/Spark等技術的突出特點,隨著TiDB的大面積推廣,會逐漸弱化 OLTP/OLAP的界限,并簡化目前冗雜的ETL流程,引起新一輪的技術浪潮。
一言以蔽之,TiDB,前景可待,未來可期。





猜你喜歡:

shell腳本編輯教程下載【黑馬程序員】

使用shell腳本一鍵啟動/關閉Kafka【操作教程】

Shell如何實現(xiàn)定時采集數(shù)據(jù)到HDFS?

Hadoop高可用集群搭建詳細教程【黑馬程序員】

黑馬程序員python大數(shù)據(jù)開發(fā)課程

分享到:
在線咨詢 我要報名
和我們在線交談!