TiDB叢集基於Binlog的跨機房高可用實踐
總篇120篇 2021年第11篇
1. 背景介紹
之家要求對核心業務做跨機房部署,當 A 機房整體故障時,業務可以快速切換到 B 機房繼續提供服務,提升業務容災能力。涉及到了多套 TiDB 叢集跨機房高可用佈署,在此我對 TiDB 叢集基於 Binlog 的跨機房高可用實踐做下總結和回顧。
本文主要涉及以下幾項內容:
● 幾種基於 TiDB 的跨機房高可用方案及優缺點
● 基於 Binlog 雙向複製的高可用方案工作原理
● 當前線上叢集高可用架構及對未來的展望
2. 跨機房高可用概述
下面介紹下 TiDB 幾種跨機房叢集高可用方案的優缺點:
通過以上分析,1、2 方案成本太高,3方案缺乏實際意義,4方案還在外部試點測試中,暫時未達到生產級別可用。難道沒有方案可用?下面還有兩種方案沒提到,這裡從技術層面分析下兩種方案的優缺點。
經過分析,我們最終選擇了過度方案 5:基於 Binlog 雙向複製部署跨機房叢集。後續時間成熟,我們會升級到方案 4或者 6。
3. 工作原理
下面簡單描述下基於 Binlog 雙向同步的工作原理
在 A 和 B 兩個叢集間開啟雙向同步,則寫入叢集 A 的資料會同步到叢集 B 中,然後這部分資料又會繼續同步到叢集 A,這樣就會出現無限迴圈同步的情況。如上圖所示,在同步資料的過程中 Drainer 對 Binlog 加上標記,通過過濾掉有標記的 Binlog 來避免迴圈同步。詳細的實現流程如下:
(1)為兩個叢集分別啟動 TiDB Binlog 同步程式。
(2)待同步的事務經過 A 的Drainer 時,Drainer 為事務加入_drainer_repl_mark 標識表,並在表中寫入本次 DML event 更新,將事務同步至叢集 B。
(3)叢集 B 向叢集 A 返回帶有 _drainer_repl_mark 標識表的 Binlog event。叢集 B 的 Drainer 在解析該Binlog event 時發現帶有 DML event 的標識表,放棄同步該 Binlog event 到叢集 A。
● 注意事項:
叢集間雙向同步的前提條件是,寫入兩個叢集的資料必須保證無衝突,即在兩個叢集中,不會同時修改同一張表的同一主鍵和具有唯一索引的行。
更詳細的內容請參考官方文件
https://docs.pingcap.com/zh/tidb/dev/bidirectional-replication-between-tidb-clusters#%E9%9B%86%E7%BE%A4%E9%97%B4%E5%8F%8C%E5%90%91%E5%90%8C%E6%AD%A5
4. 叢集架構
叢集資訊如下:
叢集架構如下
5. 部署步驟
本節簡要介紹一下基於 Binlog 的跨機房部署步驟,如何對一個線上未開啟 Binlog 的叢集配置跨機房雙向複製,主要分為兩部分配置:A 叢集配置,B 叢集配置。
5.1 部署雙向複製
● A 叢集配置步驟概要
(1)A 叢集部署 Pump
(2)A 叢集開啟 Binlog
(3)A 叢集匯出全量資料,將全量資料匯入B 叢集
(4)A 叢集配置 Drainer ,實現增量複製
● B 叢集部署步驟概要
(1)B 叢集部署 Pump
(2)B 叢集開啟 Binlog
(3)B 叢集配置 Drainer ,實現反向複製
5.2 測試雙向複製
我們重點對下面幾種場景做了測試:
測試結果滿足業務需求。
6. 展望
基於 Binlog 的跨機房部署方案執行比較穩定,但是存在一些缺點:併發處理能力不足,無法做到高可用。因此基於 Binlog 的方案目前屬於過度方案,我們還是希望不久的將來能夠使用基於 TiCDC 的方案替代 Binlog 方案,TiCDC 彌補了上述 Binlog 的不足,也是官方大力開發並支援的方案。
介於目前 TiCDC 的雙向同步方案還沒正式 GA,而且存在一些問題,例如使用記憶體較多,同步中斷等。值得期待的是,官方正在大力推進測試,應該會在2022年 GA。屆時,我們將重點進行測試,讓我們拭目以待。
作者簡介
▼ 關注「 之家技術 」,獲取更多技術乾貨 ▼
- 現代汽車計劃在韓國投資 21 萬億韓元,用於擴充電動汽車產能及技術研發
- 英特爾 XeSS 技術首秀推遲至今夏
- 英特爾 XeSS 超取樣技術將於 5 月 20 日迎來首秀,遊戲《Dolmen》首發支援
- 分層次構建應⽤系統的可觀測性
- 4998 元起,中興 Axon 40 Ultra 今日開售:驍龍 8 Gen 1 第三代屏下攝像技術
- Go語言專案實踐及新特性解讀
- 維信諾展示 1.0mm 手機極窄邊框技術、屏下攝像筆記本螢幕
- 英特爾收購 Siru 公司,增強 GPU 技術能力
- 餘承東:今年手機供應極大改善,華為手機能買到了,Mate Xs 2 摺疊屏、WIFI 技術大突破
- 訊息稱蘋果開始削減成本,零售店放緩招聘技術支援
- 日本研發氧化鎵製備新技術,成本猛降 99%
- 零跑汽車推出續航增加 10% 的電池底盤一體化技術,免費開放共享
- E Ink 推出 Gallery 3 全綵電子紙技術:彩色重新整理率大幅提升,支援手寫功能
- 打造下一個 ASML?傳荷蘭將投資 11 億歐元培育矽光子技術企業
- vivo 舉辦雙芯影像技術溝通會,X80 系列首發自研晶片 V1 亮相
- 天舟三號從空間站後端繞前端對接,後續將迎接天舟四號、神舟十四號的到訪
- 小米 Civi 1S 預熱:新增 4D 光追煥顏美妝技術,6 種不同風格立體妝容
- iQOO 44W 閃充移動電源首發融合快速充電技術,將支援跨品牌快充
- 巨集碁創始人:元宇宙並非未來,而是已發生的技術進步的產物
- 三星剛剛挖來了一名美國高管,曾經是 IBM 和英特爾絕對的技術大牛