

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