阿里云DTS原理,阿里云ecs云服務器鏡像阿里云DTS原理系統架構架構說明系統高可用數據傳輸服務內部每個模塊都有主備架構,保證系統高可用。容災系統實時檢測每個節點的健康狀況,一旦發現某個節點異常,會將鏈路秒級切換到其他節點。數據源地址動態適配對于數據訂閱及同步鏈路,容災系統還會監測數據源的連接地址切換等變更操作,一旦發......
系統架構
架構說明
系統高可用
數據傳輸服務內部每個模塊都有主備架構,保證系統高可用。容災系統實時檢測每個節點的健康狀況,一旦發現某個節點異常,會將鏈路秒級切換到其他節點。
數據源地址動態適配
對于數據訂閱及同步鏈路,容災系統還會監測數據源的連接地址切換等變更操作,一旦發現數據源發生連接地址變更,它會動態適配數據源新的連接方式,在數據源變更的情況下,保證鏈路的穩定性。
數據遷移基本原理
數據遷移提供多種遷移類型:結構對象遷移、全量數據遷移及增量數據遷移。如果需要實現不停服遷移,需要選擇結構對象遷移、全量數據遷移和增量數據遷移。
對于異構數據庫之間的遷移,DTS會從源庫讀取結構定義語法,根據目標數據庫的語法定義,將語法重新組裝成目標數據庫的語法格式,并導入到目標實例中。
全量數據遷移過程持續較久,在這過程中,源實例不斷有業務寫入,為保證遷移數據的一致性,在全量數據遷移之前會啟動增量數據拉取模塊,增量數據拉取模塊會拉取源實例的增量更新數據,并解析、封裝、存儲在本地存儲中。
當全量數據遷移完成后,DTS會啟動增量日志回放模塊,增量日志回放模塊會從增量日志讀取模塊中獲取增量數據,經過反解析、過濾、封裝后遷移到目標實例,從而實現增量數據遷移。
實時同步基礎原理
實時同步功能能夠實現兩個數據源之間的增量數據實時同步。DTS將陸續支持OLTPgt;OLAP的數據實時同步。
同步鏈路的創建過程如下:
同步初始化
將源實例的歷史存量數據在目標實例初始化一份。
增量數據實時同步
當初始化完成后進入兩邊增量數據實時同步階段,該階段DTS將實現源實例和目標實例的數據動態同步。
增量數據實時同步過程,DTS的底層實現模塊主要包括:
日志讀取模塊
日志讀取模塊從源實例讀取原始數據,經過解析、過濾及標準格式化,最終將數據在本地持久化。日志讀取模塊通過數據庫協議連接并讀取源實例的增量日志。如果源數據庫為RDS MySQL,那么數據抓取模塊通過Binlog dump協議連接源庫。
日志回放模塊
日志回放模塊從日志讀取模塊中請求增量數據,并根據用戶配置的同步對象進行數據過濾,然后在保證事務時序性及事務一致性的前提下,將日志記錄同步到目標實例。
DTS具備日志讀取模塊、日志回放模塊的高可用,DTS容災系統一旦檢測到鏈路異常,就會在健康服務節點上斷點重啟鏈路,從而有效保證同步鏈路的高可用。
數據訂閱基礎原理
數據訂閱支持實時拉取RDS實例的增量日志,用戶可以通過DTS提供的SDK數據訂閱服務端來訂閱增量日志,同時可以根據業務需求,實現數據定制化消費。
DTS服務端的日志拉取模塊主要實現從數據源抓取原始數據,通過解析、過濾、標準格式化等流程,最終將增量數據在本地持久化。
日志抓取模塊通過數據庫協議連接并實時拉取源實例的增量日志。例如源實例為RDS MySQL,那么數據抓取模塊通過Binlog dump協議連接源實例。
日志拉取模塊及下游消費SDK的高可用:
DTS容災系統一旦檢測到日志拉取模塊出現異常,就會在健康服務節點上斷點重啟日志拉取模塊,保證日志拉取模塊的高可用。
DTS支持在服務端實現下游SDK消費進程的高可用。用戶同時對一個數據訂閱鏈路,啟動多個下游SDK消費進程,服務端同時只向一個下游消費推快遞增量數據,當這個消費進程異常后,服務端會從其他健康下游中選擇一個消費進程,向這個消費進程推快遞數據,從而實現下游消費的高可用。
版權聲明:本文為博主原創文章,遵循CC 4.0 BYSA版權協議,轉載請附上原文出處鏈接和本聲明。
本文鏈接:https://blog.csdn.net/qq44714603/article/details/105205150
特別聲明:以上文章內容僅代表作者本人觀點,不代表ESG跨境電商觀點或立場。如有關于作品內容、版權或其它問題請于作品發表后的30日內與ESG跨境電商聯系。
二維碼加載中...
使用微信掃一掃登錄
使用賬號密碼登錄
平臺顧問
微信掃一掃
馬上聯系在線顧問
小程序
ESG跨境小程序
手機入駐更便捷
返回頂部