了解TiDB基礎(chǔ)入門

由于目前的項目把mysql換成了TiDb本橙,所以特意來了解下tidb。其實也不能說換纱皆,由于tidb和mysql幾乎完全兼容南蓬,所以我們的程序沒有任何改動就完成了數(shù)據(jù)庫從mysql到TiDb的轉(zhuǎn)換,TiDB 是一個分布式 NewSQL SQL 语盈、 NoSQL 和 NewSQL 的優(yōu)缺點比較 數(shù)據(jù)庫舱馅。它支持水平彈性擴展、ACID 事務(wù)刀荒、標準 SQL代嗤、MySQL 語法和 MySQL 協(xié)議棘钞,具有數(shù)據(jù)強一致的高可用特性,是一個不僅適合 OLTP 場景還適合 OLAP 場景的混合數(shù)據(jù)庫干毅。下面是對有關(guān)資料的整理還有一些擴展內(nèi)容以鏈接的方式展示宜猜,有興趣可以點擊了解一下。

一. TiDb簡介

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

  • 1 高度兼容 MySQL
     大多數(shù)情況下拱绑,無需修改代碼即可從 MySQL 輕松遷移至 TiDB,分庫分表后的 MySQL 集群亦可通過 TiDB 工具進行實時遷移丽蝎。
  • 2 水平彈性擴展
     通過簡單地增加新節(jié)點即可實現(xiàn) TiDB 的水平擴展猎拨,按需擴展吞吐或存儲,輕松應對高并發(fā)屠阻、海量數(shù)據(jù)場景红省。
  • 3 分布式事務(wù)
     TiDB 100% 支持標準的 ACID 事務(wù)。
  • 4 真正金融級高可用
     相比于傳統(tǒng)主從 (M-S) 復制方案国觉,基于 Raft 的多數(shù)派選舉協(xié)議可以提供金融級的 100% 數(shù)據(jù)強一致性保證吧恃,且在不丟失大多數(shù)副本的前提下,可以實現(xiàn)故障的自動恢復 (auto-failover)麻诀,無需人工介入痕寓。
  • 5 一站式 HTAP 解決方案
     TiDB 作為典型的 OLTP 行存數(shù)據(jù)庫,同時兼具強大的 OLAP 性能蝇闭,配合 TiSpark呻率,可提供一站式 HTAP解決方案,一份存儲同時處理OLTP & OLAPOLAP呻引、OLTP的介紹和比較無需傳統(tǒng)繁瑣的 ETL 過程礼仗。
  • 6 云原生 SQL 數(shù)據(jù)庫
     TiDB 是為云而設(shè)計的數(shù)據(jù)庫,同 Kubernetes (Kubernetes核心概念 )深度耦合逻悠,支持公有云元践、私有云和混合云,使部署童谒、配置和維護變得十分簡單单旁。
     TiDB 的設(shè)計目標是 100% 的 OLTP 場景和 80% 的 OLAP 場景,更復雜的 OLAP 分析可以通過 TiSpark 項目來完成惠啄。 TiDB 對業(yè)務(wù)沒有任何侵入性慎恒,能優(yōu)雅的替換傳統(tǒng)的數(shù)據(jù)庫中間件任内、數(shù)據(jù)庫分庫分表等 Sharding 方案。同時它也讓開發(fā)運維人員不用關(guān)注數(shù)據(jù)庫 Scale 的細節(jié)問題融柬,專注于業(yè)務(wù)開發(fā)死嗦,極大的提升研發(fā)的生產(chǎn)力.

二. TiDb 整體架構(gòu)

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

  • TiDB Server
     TiDB Server 負責接收 SQL 請求,處理 SQL 相關(guān)的邏輯粒氧,并通過 PD 找到存儲計算所需數(shù)據(jù)的 TiKV 地址越除,與 TiKV 交互獲取數(shù)據(jù),最終返回結(jié)果外盯。 TiDB Server是無狀態(tài)的摘盆,其本身并不存儲數(shù)據(jù),只負責計算饱苟,可以無限水平擴展孩擂,可以通過負載均衡組件(如LVS、HAProxy 或F5)對外提供統(tǒng)一的接入地址箱熬。
  • PD Server
     Placement Driver (簡稱 PD) 是整個集群的管理模塊类垦,其主要工作有三個: 一是存儲集群的元信息(某個 Key 存儲在哪個 TiKV 節(jié)點);二是對 TiKV 集群進行調(diào)度和負載均衡(如數(shù)據(jù)的遷移城须、Raft group leader的遷移等)蚤认;三是分配全局唯一且遞增的事務(wù) ID。   
     PD 是一個集群糕伐,需要部署奇數(shù)個節(jié)點砰琢,一般線上推薦至少部署 3 個節(jié)點。
  • TiKV Server
     TiKV Server 負責存儲數(shù)據(jù)良瞧,從外部看 TiKV 是一個分布式的提供事務(wù)的 Key-Value 存儲引擎陪汽。存儲數(shù)據(jù)的基本單位是 Region,每個 Region 負責存儲一個 Key Range (從 StartKey 到EndKey 的左閉右開區(qū)間)的數(shù)據(jù)莺褒,每個 TiKV 節(jié)點會負責多個 Region 掩缓。TiKV 使用 Raft協(xié)議做復制,保持數(shù)據(jù)的一致性和容災遵岩。副本以 Region 為單位進行管理你辣,不同節(jié)點上的多個 Region 構(gòu)成一個 RaftGroup,互為副本尘执。數(shù)據(jù)在多個 TiKV 之間的負載均衡由 PD 調(diào)度舍哄,這里也是以 Region 為單位進行調(diào)度。

三. 核心特性

  • 1 水平擴展
     無限水平擴展是 TiDB 的一大特點誊锭,這里說的水平擴展包括兩方面:計算能力和存儲能力表悬。TiDB Server 負責處理 SQL 請求,隨著業(yè)務(wù)的增長丧靡,可以簡單的添加 TiDB Server 節(jié)點蟆沫,提高整體的處理能力籽暇,提供更高的吞吐。TiKV 負責存儲數(shù)據(jù)饭庞,隨著數(shù)據(jù)量的增長戒悠,可以部署更多的 TiKV Server 節(jié)點解決數(shù)據(jù) Scale 的問題。PD 會在 TiKV 節(jié)點之間以 Region 為單位做調(diào)度舟山,將部分數(shù)據(jù)遷移到新加的節(jié)點上绸狐。所以在業(yè)務(wù)的早期,可以只部署少量的服務(wù)實例(推薦至少部署 3 個 TiKV累盗, 3 個 PD寒矿,2 個 TiDB),隨著業(yè)務(wù)量的增長若债,按照需求添加 TiKV 或者 TiDB 實例符相。
  • 2 高可用
     高可用是 TiDB 的另一大特點,TiDB/TiKV/PD 這三個組件都能容忍部分實例失效蠢琳,不影響整個集群的可用性主巍。下面分別說明這三個組件的可用性、單個實例失效后的后果以及如何恢復挪凑。
    TiDB
     TiDB 是無狀態(tài)的,推薦至少部署兩個實例逛艰,前端通過負載均衡組件對外提供服務(wù)躏碳。當單個實例失效時,會影響正在這個實例上進行的 Session散怖,從應用的角度看菇绵,會出現(xiàn)單次請求失敗的情況,重新連接后即可繼續(xù)獲得服務(wù)镇眷。單個實例失效后咬最,可以重啟這個實例或者部署一個新的實例。
    PD
     PD 是一個集群欠动,通過 Raft 協(xié)議保持數(shù)據(jù)的一致性永乌,單個實例失效時,如果這個實例不是 Raft 的 leader具伍,那么服務(wù)完全不受影響翅雏;如果這個實例是 Raft 的 leader,會重新選出新的 Raft leader人芽,自動恢復服務(wù)望几。PD 在選舉的過程中無法對外提供服務(wù),這個時間大約是3秒鐘萤厅。推薦至少部署三個 PD 實例橄抹,單個實例失效后靴迫,重啟這個實例或者添加新的實例。
    TiKV
     TiKV 是一個集群楼誓,通過 Raft 協(xié)議(raft一致性哈算法以及Raft 為什么是更易理解的分布式一致性算法 )保持數(shù)據(jù)的一致性(副本數(shù)量可配置玉锌,默認保存三副本),并通過 PD 做負載均衡調(diào)度慌随。單個節(jié)點失效時芬沉,會影響這個節(jié)點上存儲的所有 Region。對于 Region 中的 Leader 結(jié)點阁猜,會中斷服務(wù)丸逸,等待重新選舉;對于 Region 中的 Follower 節(jié)點剃袍,不會影響服務(wù)黄刚。當某個 TiKV 節(jié)點失效,并且在一段時間內(nèi)(默認 30 分鐘)無法恢復民效,PD 會將其上的數(shù)據(jù)遷移到其他的 TiKV 節(jié)點上憔维。

四. TiDb技術(shù)內(nèi)幕

五. 安裝部署

tidb安裝部署,可能比較麻煩畏邢,一步步照著做业扒,如果公司有專門的運維,這個工作可以由運維來搞舒萎,但是大多數(shù)的中小公司是沒有的程储,都是開發(fā)者兼職運維,所以作為一個開發(fā)者臂寝,還是了解下比較好章鲤。 安裝部署

聲明 :
 以上只是對tidb資料的簡單整理和對tidb的一個基本了解,更詳細的資料可以轉(zhuǎn)至tidb的官方文檔咆贬,注意里面的常見問題和解答败徊,很有用:PingCAP Tidb官方文檔

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市掏缎,隨后出現(xiàn)的幾起案子皱蹦,更是在濱河造成了極大的恐慌,老刑警劉巖御毅,帶你破解...
    沈念sama閱讀 211,123評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件根欧,死亡現(xiàn)場離奇詭異,居然都是意外死亡端蛆,警方通過查閱死者的電腦和手機凤粗,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,031評論 2 384
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人嫌拣,你說我怎么就攤上這事柔袁。” “怎么了异逐?”我有些...
    開封第一講書人閱讀 156,723評論 0 345
  • 文/不壞的土叔 我叫張陵捶索,是天一觀的道長。 經(jīng)常有香客問我灰瞻,道長腥例,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,357評論 1 283
  • 正文 為了忘掉前任酝润,我火速辦了婚禮燎竖,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘要销。我一直安慰自己构回,他們只是感情好,可當我...
    茶點故事閱讀 65,412評論 5 384
  • 文/花漫 我一把揭開白布疏咐。 她就那樣靜靜地躺著纤掸,像睡著了一般。 火紅的嫁衣襯著肌膚如雪浑塞。 梳的紋絲不亂的頭發(fā)上借跪,一...
    開封第一講書人閱讀 49,760評論 1 289
  • 那天,我揣著相機與錄音酌壕,去河邊找鬼垦梆。 笑死,一個胖子當著我的面吹牛仅孩,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播印蓖,決...
    沈念sama閱讀 38,904評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼辽慕,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了赦肃?” 一聲冷哼從身側(cè)響起溅蛉,我...
    開封第一講書人閱讀 37,672評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎他宛,沒想到半個月后船侧,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,118評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡厅各,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,456評論 2 325
  • 正文 我和宋清朗相戀三年镜撩,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片队塘。...
    茶點故事閱讀 38,599評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡袁梗,死狀恐怖宜鸯,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情遮怜,我是刑警寧澤淋袖,帶...
    沈念sama閱讀 34,264評論 4 328
  • 正文 年R本政府宣布,位于F島的核電站锯梁,受9級特大地震影響即碗,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜陌凳,卻給世界環(huán)境...
    茶點故事閱讀 39,857評論 3 312
  • 文/蒙蒙 一剥懒、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧冯遂,春花似錦蕊肥、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,731評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至裸准,卻和暖如春展东,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背炒俱。 一陣腳步聲響...
    開封第一講書人閱讀 31,956評論 1 264
  • 我被黑心中介騙來泰國打工盐肃, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人权悟。 一個月前我還...
    沈念sama閱讀 46,286評論 2 360
  • 正文 我出身青樓砸王,卻偏偏與公主長得像,于是被迫代替她去往敵國和親峦阁。 傳聞我的和親對象是個殘疾皇子谦铃,可洞房花燭夜當晚...
    茶點故事閱讀 43,465評論 2 348

推薦閱讀更多精彩內(nèi)容