首頁技術(shù)文章正文

TiDB的核心特性有哪些?

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

IT培訓(xùn)班

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

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

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


高可用特點(diǎn):

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


TiDB 存儲(chǔ)和計(jì)算能力

TiDB的核心特性

存儲(chǔ)能力-TiKV-LSM

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

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

總結(jié)

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





猜你喜歡:

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

使用shell腳本一鍵啟動(dòng)/關(guān)閉Kafka【操作教程】

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

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

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

分享到:
在線咨詢 我要報(bào)名
和我們?cè)诰€交談!