無限水平擴展是 TiDB 的一大特點,這里說的水平擴展包括兩方面:計算能力(TiDB)和存儲能力(TiKV)。
TiDB Server 負責處理 SQL 請求,隨著業務的增長,可以簡單的添加 TiDB Server 節點,提高整體的處理能力,提供更高的吞吐。
TiKV 負責存儲數據,隨著數據量的增長,可以部署更多的 TiKV Server 節點解決數據 Scale 的問題。PD 會在 TiKV 節點之間以 Region 為單位做調度,將部分數據遷移到新加的節點上。
所以在業務的早期,可以只部署少量的服務實例(推薦至少部署 3 個 TiKV, 3 個 PD,2 個 TiDB),隨著業務量的增長,按照需求添加 TiKV 或者 TiDB 實例。
高可用是 TiDB 的另一大特點,TiDB/TiKV/PD 這三個組件都能容忍部分實例失效,不影響整個集群的可用性。下面分別說明這三個組件的可用性、單個實例失效后的后果以及如何恢復。
1. TiDB
TiDB 是無狀態的,推薦至少部署兩個實例,前端通過負載均衡組件對外提供服務。當單個實例失效時,會影響正在這個實例上進行的 Session,從應用的角度看,會出現單次請求失敗的情況,重新連接后即可繼續獲得服務。單個實例失效后,可以重啟這個實例或者部署一個新的實例
2. PD
PD 是一個集群,通過 Raft 協議保持數據的一致性,單個實例失效時,如果這個實例不是 Raft 的 leader,那么服務完全不受影響;如果這個實例是 Raft 的 leader,會重新選出新的 Raft leader,自動恢復服務。PD 在選舉的過程中無法對外提供服務,這個時間大約是3秒鐘。推薦至少部署三個 PD 實例,單個實例失效后,重啟這個實例或者添加新的實例。
3. TiKV
TiKV 是一個集群,通過 Raft 協議保持數據的一致性(副本數量可配置,默認保存三副本),并通過 PD 做負載均衡調度。單個節點失效時,會影響這個節點上存儲的所有 Region。對于 Region 中的 Leader 節點,會中斷服務,等待重新選舉;對于 Region 中的 Follower 節點,不會影響服務。當某個 TiKV 節點失效,并且在一段時間內(默認 30 分鐘)無法恢復,PD 會將其上的數據遷移到其他的 TiKV 節點上。
以上就是小編今天為大家分享的關于“TiDB核心特性:水平擴展和高可用”的文章,希望本篇文章能夠幫到你。云和數據?ICT?職業教育發揮公司產業化優勢與技術積淀,整合國內外優秀師資,累計自主研發?230?余項教輔、教材,300?余?項實踐教學案例與實訓平臺,采用六位一體項目制教學模式,年?培養高端?ICT?技術人才超?10000?人,累計為企業輸送高端泛?ICT?技術人才超?9?萬人,學員?60%來自于口碑推薦。如果你對目前的生活狀態不滿意,想提升技能,可以咨詢云和數據官網獲得幫助。
Copyright ? 2013-2021 河南云和數據信息技術有限公司 豫ICP備14003305號 ISP經營許可證:豫B-20160281