歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux綜合 >> Linux資訊 >> Linux業界

LinkedIn開源低延時變化數據捕獲系統Databus

LinkedIn於2月26日開源了其低延時變化數據捕獲系統 Databus,該系統在低延時情況下仍然具備高有效性。能服務於LinkedIn生態系統數年之久,除上述特性以外當然還有其不可忽視的獨到之處——無 限制的lookback能力及豐富的subscription功能。文章在最後公布了Databus源碼及相關下載。

LinkedIn於2月26日開源了其低延時變化數據捕獲系統Databus,該系統可以在MySQL以及Oracle數據 源上捕獲數據,當下LinkedIn只開源了Oracle上的連接器。Databus作為LinkedIn生態系統中的一致性保障組件,在低延時的情況下 仍然具有高有效性;而其最大的特點莫過於無限制lookback能力及豐富的subscription功能。

以下為LinkedIn上Databus簡述譯文:

何為Databus

LinkedIn擁有一個針對數據儲存和服務系統的多樣化生態系統。首要的OLTP數據存儲是針對於寫和讀操作開發。其它的專業系統則聚焦於復雜查詢以及通過緩存對查詢進行加速。舉個例子:通過Search Index系統來服務搜索查詢,這會需要系統不間斷給主數據庫數據做索引。

這將導致對可靠性的特殊需求,事務一致性需求將貫穿整個系統 —— 從主數據源中捕獲變化數據並發送給派生數據系統。針對這個需求,LinkedIn建立了Databus,添為LinkedIn數據處理管道的重要組成部 分。Databus傳輸層實現了毫秒級終端到終端的數據傳輸,在具備無限制的lookback(還原)能力及豐富subscription(截取)的功能 同時,還保障了單服務器每秒數以萬計的改變事件(change event)。

如上圖所述,類似於Search Index及Read Replica這些作為Databus的Consumer(類節點)使用的將是Client Library(客戶端庫)。當對一個主OLTP數據庫做寫操作時,連接了這個數據庫的Relay們將會把改變存入Relay中;Databus這些被嵌 入內存或者索引的Consumer將會把它從Relay或Bootstrap(引導程序)中取出,並且根據情況修改索引或者緩存,這就做到了根據源數據庫 的狀態實時的更新索引。

Databus工作原理簡述

Databus重要特性如下:

  1. 數據源獨立:Databus支持從多樣的數據源中捕捉變化數據,包括Oracle及MySQL。Oracle轉接器已經被開源,不久後也將會開源MySQL轉接器。
  2. 可擴展和高有效性:在保證高有效性的同時,Databus可以擴展到上萬個Consumer和事務型源數據庫上。
  3. 事務有序的進行交付:Databus為源數據庫保存了事務保障,並且根據源提交順序分組的對改變事務進行交付。
  4. 低延時以及豐富的subscription功能:一旦數據源發生改變,Databus可以在幾毫秒內將事務交付到Consumer。Consumer同樣可以使用Databus服務器端的篩選對數據流的指定部分進行檢索。
  5. 無限制的lookback:Databus中最革新的部分就是Consumer可以無限制的lookback。Consumer對完整數 據做拷貝時(比如說一個新的搜索索引)不會給主OLTP數據庫帶來額外的負載,這一點在Consumer性能大幅度下降時同樣會有所幫助。

如上圖所示,Databus系統由Relay、Bootstrap Service和Client Library組成。Relay從源數據庫中捕獲改變內容,並將事件儲存在一個高性能的日志存儲中。Bootstrap Service會通過Relay改變流申請為源數據庫儲存一個流動的快照。應用程序使用Databus Client Library從Relay或者Bootstrap中抽取改變流,並且通過Consumer(實現了庫內定義的回調API)對改變事件進行處理。

快速的從Databus Relay中轉移Consumer需要的檢索事件。如果一個Consumer的性能下降到它所請求的事件已經不再保存在Relay的日志裡,這個 Consumer需要交付一個快照 —— 保存了該Consumer上一次處理完成至今所發生的改變合集;如果一個新的(沒有之前版本數據集)Consumer建立,這樣新加入的Consumer 可以快速的保持一致。

Databus相關下載

Databus能在LinkedIn服役多年其獨到之處無需質疑,現LinkedIn將其開源並廣邀感興趣的開發人員參與。

  • Quick start guide
  • Databus source on github
  • Databus discussion group
Copyright © Linux教程網 All Rights Reserved