全部產品
Search
文件中心

Data Transmission Service:應用情境

更新時間:Jul 06, 2024

Data Transmission Service (简称DTS)支援多種資料轉送方式,包括資料移轉、資料同步及資料訂閱。 您可以根據使用情境選擇最適合的資料轉送方式。

業務不停服遷移

傳輸方式:資料移轉

為了保證資料的一致性,傳統的遷移過程需要您在遷移資料時停止向來源資料庫寫入資料。 根據資料量和網路條件,遷移過程可能需要幾個小時甚至幾天的時間。 這個漫長的過程可能會對您的業務產生很大的影響。

DTS則可以協助您以最小化的停機時間遷移您的資料。 在資料移轉期間,您的應用程式仍可以保持運行狀態。 唯一的停機時間是當您將應用程式切換到目標資料庫時。 通常,您可以將此切換視窗降低到分鐘層級。 資料移轉的流程如下圖所示。

資料移轉流程

資料移轉過程包括三個階段,即結構遷移、全量資料移轉和增量資料移轉。 在增量資料移轉期間,來源資料庫中進行中的資料變更會即時同步到目標資料庫。 遷移完成後,您可以驗證遷移到目標資料庫的資料和結構是否與您的應用程式完全相容。 當驗證通過後,即可將應用程式切換到目標資料庫。

資料異地災備

傳輸方式:資料同步

如果您的應用程式部署在單個地區中,可能會因為斷電、網路中斷等不可抗因素而導致服務中斷。

針對這種情況,您可以在另一個地區構建災備中心,以提高服務可用性。 DTS會在業務中心和災備中心之間持續同步資料更新,並保持地區間副本同步。 如果主地區發生故障,您可以將使用者請求切換到災備地區。

Geo-redundancy

異地多活

傳輸方式:資料同步

隨著業務的發展,如果在單個地區中部署應用程式,您可能會遇到以下問題:

  • 訪問應用程式的使用者在地理位置上分布較廣。 地理位置較遠的使用者訪問延遲較高,體驗較差。
  • 可擴充性受限於單個地區中基礎設施的能力,例如網路頻寬。

為了應對這些挑戰,您可以在同一個城市或不同的城市建立多個業務單元。 各個業務單元之間通過DTS實現資料的雙向即時同步,以保持地區間副本同步。 如果一個業務單元發生故障,您只需要將流量切換到其他業務單元即可。 應用程式可以在幾秒鐘內恢複。 通過這種方式,您可以基於多個業務單元的冗餘來實現更高的可用性。

您還可以跨業務單元分配流量。 例如,您可以將每個業務單元的流量重新導向到離使用者最近的伺服器。 這樣可以降低網路延遲,提升使用者體驗。

Active geo-redundancy

與BI系統整合

傳輸方式:資料同步

阿里雲提供完善的BI產品體系。 您需要將應用程式整合到阿里雲的BI儲存系統,從而充分利用雲端式的BI功能。 DTS可以協助您將自建資料庫即時同步到阿里雲的BI儲存系統,如MaxCompute。

資料即時分析

傳輸方式:資料訂閱

資料分析對於提高企業洞察力和使用者體驗至關重要。 憑藉分析即時資料的能力,企業可以調整營銷策略,適應不斷變化的市場,滿足更高的使用者需求。

通過DTS的資料訂閱功能,您可以在不影響線上業務的情況下擷取增量資料。 您可以使用標準的Kafka用戶端SDK將訂閱的增量資料流式傳輸到分析系統,以便對最新的交易資料進行分析。

Realtime Analytics

輕量級緩衝更新

傳輸方式:資料訂閱

為了提高應用程式的回應時間,一種常用的策略是引入緩衝層,通過緩衝層的記憶體讀取機制提高並發讀取請求的效能。 所有讀取請求都被定向到讀取處理常式。 通過記憶體讀取機制,讀取處理常式能夠以更好的效能處理讀取請求。

DTS提供的資料訂閱功能,可以協助您訂閱主要資料庫的資料變更,並即時更新緩衝的資料,以實現輕量級的緩衝更新。

Simple Cache

該架構具有以下優勢:

  • 低延遲寫入

    寫入請求在更新提交到資料庫後立即完成。 緩衝更新操作在並行進程中處理。 應用程式不必等待緩衝更新。

  • 簡化的應用程式邏輯

    應用程式不必將相同的更新寫入兩個副本。 相反,它只需要訂閱更新流,在並行進程中相應地更新緩衝。

  • 資料庫上無額外效能開銷

    DTS從重做日誌中檢索資料更新。 此過程不會干擾讀/寫資料庫的正常事務,也不會產生效能開銷。

業務解耦和非同步處理

傳輸方式:資料訂閱

典型的網上購物系統包括訂單管理、庫存管理和物流管理等組件。 在同步處理模型中,所有在相應組件中需要執行的依賴操作必須與下單操作整合。 這意味著使用者必須等到所有更新都提交後才能確認訂單。 同步處理模型有以下問題:

  • 下單操作需要很長時間才能完成。
  • 由於多個操作整合到一個步驟中,任何組件中的單個故障都可能使整個功能失敗。

要解決這些問題,您可以部署一個具有解耦組件的系統,其中每個事務都會觸發對相應元件資料庫的非同步更新。 使用DTS的資料訂閱功能,各個組件都可以訂閱資料更新並相應地進行後續處理。 該架構將核心組件與其他組件分離,使核心組件能夠更穩定地運行。

下圖顯示瞭解耦組件之間的非同步處理邏輯。

Decoupling

該情境中,訂單管理組件會在使用者下單後立即返回結果。 DTS的資料訂閱模組擷取資料更新,並以“發布/訂閱流”的形式傳輸這些資料更新。 其他組件可以使用標準的Kafka客訂閱資料更新,然後進行後續處理,如庫存更新和發貨處理。

該架構已經應用到阿里巴巴集團內的各種業務。 每天,數以萬計的應用通過DTS的資料訂閱功能訂閱淘寶訂單管理系統的資料更新,並行完成後續處理。

橫向擴充讀能力

傳輸方式:資料同步

為了處理大量並發讀取請求,您可以將工作負載分配給多個唯讀資料庫執行個體。 為此,您可以使用DTS的資料同步功能將資料即時同步到唯讀執行個體。 該橫向擴充架構可以協助您處理超高並發讀取的工作負載。

用於資料倉儲的任務調度

傳輸方式:資料移轉

對於每天處理大量交易資料的大型線上應用程式,您可能需要採用“次日倉庫策略”,定期將資料轉送到資料倉儲。 例如,您希望將遷移安排在業務低峰期,以便將當天的交易資料傳輸到資料倉儲。 通過該部署,您的分析系統可以處理一天前的資料。