由攜程架構部門研發的 redis 多資料中心複制管理系統 x-pipe 已于近日開源。基于 redis 的 master-slave 複制協定,實作低延時、高可用的 redis 多資料中心複制,并且提供一鍵機房切換,複制監控、異常報警等功能。
xpipe 解決什麼問題
redis 在攜程内部得到了廣泛的使用,根據用戶端資料統計,整個攜程全部 redis 的讀寫請求在每秒 200w,其中寫請求約 10w,很多業務甚至會将 redis 當成記憶體資料庫使用。這樣,就對 redis 多資料中心提出了很大的需求,一是為了提升可用性,解決資料中心 dr(disaster recovery) 問題,二是提升通路性能,每個資料中心可以讀取目前資料中心的資料,無需跨機房讀資料,在這樣的需求下,xpipe 應運而生 。
為了友善描述,後面用 dc 代表資料中心 (data center)。
整體架構
console 用來管理多機房的元資訊資料,同時提供使用者界面,供使用者進行配置和 dr 切換等操作。
keeper 負責緩存 redis 記錄檔,并對跨機房傳輸進行壓縮、加密等處理。
meta server 管理單機房内的所有 keeper 狀态,并對異常狀态進行糾正。
具體實作原理和特性請檢視官方文檔。