里昂酒店
新聞中心
近年來,我們專注于提供全系列企業級性能管理方案和相關的IT服務,在幫助用戶提高業務效率和整體生產力的同時,降低運營和運維成本。
精華 | 5分鐘了解TiDB (炙手可熱的寵兒)
來源:   日期:2019-07-19

本文來自某用戶,以下為正文。

由于目前的項目把mysql換成了TiDb,所以特意來了解下tidb。其實也不能說換,由于tidb和mysql幾乎完全兼容,所以我們的程序沒有任何改動就完成了數據庫從mysql到TiDb的轉換,TiDB 是一個分布式 NewSQL (SQL 、 NoSQL 和 NewSQL 的優缺點比較 )數據庫。它支持水平彈性擴展、ACID 事務、標準 SQL、MySQL 語法和 MySQL 協議,具有數據強一致的高可用特性,是一個不僅適合 OLTP 場景還適合 OLAP 場景的混合數據庫。



01

TiDB簡介


TiDB 是 PingCAP 公司受 Google Spanner / F1 論文啟發而設計的開源分布式 HTAP (Hybrid Transactional and Analytical Processing) 數據庫,結合了傳統的 RDBMS 和NoSQL 的最佳特性。TiDB 兼容 MySQL,支持無限的水平擴展,具備強一致性和高可用性。TiDB 的目標是為 OLTP(Online Transactional Processing) 和 OLAP (Online Analytical Processing) 場景提供一站式的解決方案。TiDB 具備如下核心特點:




① 高度兼容 MySQL


多數情況下,無需修改代碼即可從 MySQL 輕松遷移至 TiDB,分庫分表后的 MySQL 集群亦可通過 TiDB 工具進行實時遷移。




② 水平彈性擴展


通過簡單地增加新節點即可實現 TiDB 的水平擴展,按需擴展吞吐或存儲,輕松應對高并發、海量數據場景。




③ 分布式事務


TiDB 100% 支持標準的 ACID 事務。




④ 真正金融級高可用


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




⑤ 一站式 HTAP 解決方案


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




⑥ 云原生 SQL 數據庫


TiDB 是為云而設計的數據庫,同 Kubernetes (十分鐘帶你理解Kubernetes核心概念 )深度耦合,支持公有云、私有云和混合云,使部署、配置和維護變得十分簡單。

TiDB 的設計目標是 100% 的 OLTP 場景和 80% 的 OLAP 場景,更復雜的 OLAP 分析可以通過 TiSpark 項目來完成。TiDB 對業務沒有任何侵入性,能優雅的替換傳統的數據庫中間件、數據庫分庫分表等 Sharding 方案。同時它也讓開發運維人員不用關注數據庫 Scale 的細節問題,專注于業務開發,極大的提升研發的生產力.

 

 


02

TiDB整體架構



TiDB 集群主要分為三個組件:


① TiDB Server


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 是一個集群,需要部署奇數個節點,一般線上推薦至少部署 3 個節點。




③ TiKV Server


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



03

核心特性

① 水平擴展


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




② 高可用


高可用是 TiDB 的另一大特點,TiDB/TiKV/PD 這三個組件都能容忍部分實例失效,不影響整個集群的可用性。下面分別說明這三個組件的可用性、單個實例失效后的后果以及如何恢復。




TiDB


TiDB 是無狀態的,推薦至少部署兩個實例,前端通過負載均衡組件對外提供服務。當單個實例失效時,會影響正在這個實例上進行的 Session,從應用的角度看,會出現單次請求失敗的情況,重新連接后即可繼續獲得服務。單個實例失效后,可以重啟這個實例或者部署一個新的實例。



PD


PD 是一個集群,通過 Raft 協議保持數據的一致性,單個實例失效時,如果這個實例不是 Raft 的 leader,那么服務完全不受影響;如果這個實例是 Raft 的 leader,會重新選出新的 Raft leader,自動恢復服務。PD 在選舉的過程中無法對外提供服務,這個時間大約是3秒鐘。推薦至少部署三個 PD 實例,單個實例失效后,重啟這個實例或者添加新的實例。



TiKV


TiKV 是一個集群,通過 Raft 協議(raft一致性哈算法以及Raft 為什么是更易理解的分布式一致性算法 )保持數據的一致性(副本數量可配置,默認保存三副本),并通過 PD 做負載均衡調度。單個節點失效時,會影響這個節點上存儲的所有 Region。對于 Region 中的 Leader 結點,會中斷服務,等待重新選舉;對于 Region 中的 Follower 節點,不會影響服務。當某個 TiKV 節點失效,并且在一段時間內(默認 30 分鐘)無法恢復,PD 會將其上的數據遷移到其他的 TiKV 節點上。



04

應用場景

18183520gbd6.jpg

18183520xdsk.jpg

MySQL 分片與合并




18183521lzrb.jpg

直接替換 MySQL




18183521ksqd.jpg

181835214wpt.jpg

數據倉庫




18183521ed2a.jpg

作為其他系統的???/p>






東方龍馬宣傳海報-v4_副本.jpg


TiDB | 國產數據庫

趨勢所驅  擁抱開源

簡單易用  面向未來


識別二維

查看更多課程詳情


小程序碼(430x430px).png


通過小程序快速下單

電話咨詢:18501287439(同微信號)



TiDB相關資料

What’s New in TiDB 3.0.0 Beta.1

東方龍馬與PingCAP大學正式達成合作,共同助力開源數據庫生態建設

初級/高級 TiDB DBA線下培訓報名開始了!

TiDB熱火朝天,你愿跟隨時代的腳步一起前進嗎?




|  北京    |    上海    |   廣州    |   成都    |


4008-906-960


4008-906-960

全國免費咨詢電話
  • 官方微博
  • 官方微信
Copyright 1998-2016 版權所有 北京東方龍馬軟件發展有限公司 京ICP備14000200號-1
捕鱼大师手机下载 卢克怎么当团长赚钱 我想做手机贴膜还能赚钱吗 乐刷赚钱模式 壹加壹线上娱乐苹果 25岁要努力赚钱 种几亩茶果才赚钱 大唐娱乐彩票苹果 怎么在百度文库赚钱吗 美团快递员怎么赚钱 喜盈门彩票游戏 梦幻西游打造商人怎么赚钱之道 明日之后采集赚钱 河北麻将官网 能赚钱的广告软件 开个水饺外卖赚钱吗