分布式實時同步系統

2022-07-28 08:54:13 字數 1993 閱讀 6822

databus是乙個實時的、可靠的、支援事務的、保持一致性的資料變更抓取系統。 2023年在linkedin正式進入生產系統,2023年開源。

網際網路技術棧 2018-01-22 19:28:55

社群wiki主頁:

乙個大型分布式系統往往存在多種的儲存系統,mysql,tair,redis,memcache,hbase等等。一些重要的或者需要事務支援的資料操作,通常都會放到mysql處理。但是,為了滿足高效能的訪問需求或者做一些服務定製化的查詢,業務上通常又會把mysql的資料再寫到tair或者redis等外部儲存中乙份。

以業務將tair作為mysql的快取記憶體為例,通常業務在**中會有這麼一段邏輯,讀取tair,資料不存在,從mysql讀取資料,然後寫入tair。使用者變更mysql,然後會同時重新整理tair,或者將tair資料刪除。為了降低客戶端複雜度並且防止快取穿透,常會引入mq進行非同步同步,如下圖所示:

但是無論客戶端同步方式還是mq方式,其實都會存在資料一致性問題,這些場景,如果沒有乙個強一致協議(比如兩階段提交,paxos等)是很難解決掉的。

現在,有了databus,上面提到的這些一致性問題就都沒有了,並且,那些冗長的雙寫邏輯也可以去掉了。

databus是乙個實時的、可靠的、支援事務的、保持一致性的資料變更抓取系統。 2023年在linkedin正式進入生產系統,2023年開源。

databus通過挖掘資料庫日誌的方式,將資料庫變更實時、可靠的從資料庫拉取出來,業務可以通過定製化client實時獲取變更。

databus的傳輸層端到端延遲是微秒級的,每台伺服器每秒可以處理數千次資料吞吐變更事件,同時還支援無限回溯能力和豐富的變更訂閱功能。

功能&特性低延遲、支援多種訂閱機制:資料來源變更完成後,databus能在微秒級內將事務提交給消費者。同時,消費者使用databus中的伺服器端過濾功能,可以只獲取自己需要的特定資料。

無限回溯:這是databus最具創新性的元件之一,對消費者支援無限回溯能力。當消費者需要產生資料的完整拷貝時(比如新的搜尋索引),它不會對資料庫產生任何額外負擔,就可以達成目的。當消費者的資料大大落後於**資料庫時,也可以使用該功能。

架構設計

databus概要結構:

圖中顯示:search index和read replicas等系統是databus的消費者。當主資料庫發生寫操作時,連線其上的中繼系統會將資料拉到中繼中。簽入在search index或是快取中的databus消費者客戶端,就會從中繼中拉出資料,並更新索引或快取。

系統結構設計

上圖中介紹了databus系統的構成,包括中繼relay、bootstrap服務和客戶端庫。bootstrap服務中包括bootstrap producer和bootstrap server。快速變化的消費者直接從relay中取事件。如果乙個消費者的資料更新大幅落後,它要的資料就不在relay的日誌中,而是在 bootstrap producer裡面,提交給它的,將會是自消費者上次處理變更之後的所有資料變更快照。

從databus**讀取變更行,並在記憶體快取內將其序列化為databus變更事件

監聽來自databus客戶端(包括bootstrap producer)的請求,並傳輸新的databus資料變更事件

檢查relay上新的資料變更事件,並執行特定業務邏輯的**

如果落後relay太多,向bootstrap server發起查詢

新databus客戶端會向bootstrap server發起bootstrap啟動查詢,然後切換到向中繼發起查詢,以完成最新的資料變更事件

單一客戶端可以處理整個databus資料流,或者可以成為消費者集群的一部分,其中每個消費者只處理一部分流資料

檢查中繼上的新資料變更事件

將變更儲存在mysql資料庫中

mysql資料庫供bootstrap和客戶端使用

databus在linkedin

在linkedin,databus支援的系統有:

分布式實時計算系統

reference 1 批處理在大資料世界有著悠久的歷史。批處理主要操作大容量靜態資料集,並在計算過程完成後返回結果。批處理模式中使用的資料集通常符合下列特徵 批處理非常適合需要訪問全套記錄才能完成的計算工作。例如在計算總數和平均數時,必須將資料集作為乙個整體加以處理,而不能將其視作多條記錄的集合。...

分布式系統時鐘同步方案

一 問題產生 時間是乙個絕對量,而實體計算機的時間是相對量 1 物理天地本身導致的時間不一致,地球自轉 閏年 閏秒 2 現實的不能絕對一致性,a機器時間同步至b機器,網路傳輸時間是不確定性的,ab存在絕對不一致性 如上圖,computer a在2144 tick點執行分布式任務 create out...

分布式系統

分布式系統和計算機網路系統的共同點是 多數分布式系統是建立在計算機網路之上的,所以分布式系統與計算機網路在物理結構上是基本相同的。他們的區別在於 分布式作業系統的設計思想和網路作業系統是不同的,這決定了他們在結構 工作方式和功能上也不同。網路作業系統要求網路使用者在使用網路資源時首先必須了解網路資源...