數據傳輸服務DTS(Data Transmission Service)支持數據遷移、數據訂閱和數據實時同步功能,幫助您實現多種典型應用場景。

不停機遷移數據庫

傳輸方式:數據遷移

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

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

遷移系統架構

數據遷移過程包括三個階段,即結構遷移、全量數據遷移和增量數據遷移。 在增量數據遷移期間,源數據庫中正在進行的數據變更會實時同步到目標數據庫。 遷移完成后,您可以驗證遷移到目標數據庫的數據和結構是否與您的應用程序完全兼容。 當驗證通過后,即可將應用程序切換到目標數據庫,從而實現平滑遷移。

數據異地災備

傳輸方式:數據同步

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

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

異地容災架構

異地多活

隨著業務的快速發展和用戶數量的增長,如果業務部署在單個地域中,可能會面臨如下問題:

  • 用戶在地理位置上分布較廣,地理位置較遠的用戶訪問延遲較高,影響用戶體驗。
  • 單個地域底層基礎設施的能力限制了業務擴展,例如供電能力,網絡帶寬建設能力等。

為解決上述問題,您可以在同城/異地構建多個業務單元。各個業務單元之間通過DTS實現數據的雙向實時同步,保障全局數據的一致性。當任何一個單元出現故障時,您只需將該單元的流量切換至其他單元即可,可實現業務的秒級恢復,有效地保障了服務的高可用性。

您還可以根據業務的某個維度將業務流量分流至各個業務單元。例如,按照用戶所屬區域劃分各單元的流量,實現用戶就近訪問,降低網絡延遲,提升用戶體驗。同時,各個業務單元分布在不同的地域,可以有效解決單地域的基礎設施限制業務擴展的問題。

異地多活架構

加速全球化業務訪問速度

對于全球化業務,如果按照傳統架構只在單個地區部署業務,那么跨境訪問的用戶訪問服務時,訪問延遲非常大,用戶體驗較差。為加速全球化業務訪問速度,優化訪問體驗,您可以將架構調整如下。

pic

本方案中,所有地區用戶的寫請求全部路由回主業務中心。通過DTS將主業務中心的數據實時同步至次業務中心,各個地區的用戶的讀請求,則路由至就近的次業務中心,從而避免遠距離訪問,加速了全球化業務的訪問速度。

助力快速搭建定制化BI系統

傳輸方式:數據同步

由于自建BI系統的復雜性,自建BI不能滿足越來越高的實時性要求。阿里云提供了非常完善的BI體系,DTS可以幫助您將自建數據庫實時同步至阿里云的BI存儲系統(例如MaxCompute、分析型數據庫或流計算等),助力您在阿里云上快速搭建滿足自身業務的定制化BI系統。

定制化BI架構

數據實時分析

傳輸方式:數據訂閱

數據分析在提高企業洞察力和用戶體驗方面發揮著舉足輕重的作用,且實時數據分析能夠讓企業更快速、靈活地調整市場策略,適應快速變化的市場方向和消費者體驗。

DTS提供的數據訂閱功能,可以在不影響線上業務的情況下,幫助您獲取實時增量數據。通過DTS提供的SDK,您可以將訂閱到的增量數據同步至分析系統中進行實時分析。

數據分析架構

輕量級緩存更新策略

傳輸方式:數據訂閱

為提高業務訪問速度,提升業務讀并發,通常的做法是在業務架構中引入緩存層,讓業務所有讀請求全部路由到緩存層,通過緩存的內存讀取機制來提升業務讀取性能。由于緩存中的數據不能持久化 ,一旦緩存異常退出,那么內存中的數據將會丟失。

DTS提供的數據訂閱功能,可以幫助您異步訂閱數據庫的增量數據,并更新緩存的數據,實現輕量級的緩存更新策略。

輕量緩存更新架構

該架構具有以下優勢:

  • 更新路徑短,延遲低

    業務完成更新數據庫后直接返回,不需要關心緩存失效流程,整個更新路徑短、延遲低。

  • 應用簡單可靠

    應用無需實現復雜雙寫邏輯,只需啟動異步線程監聽增量數據,更新緩存數據即可。

  • 應用更新無額外性能消耗

    數據訂閱通過解析數據庫的增量日志來獲取增量數據,不會對業務和數據庫性能造成影響。

業務異步解耦

傳輸方式:數據訂閱

電商行業涉及下單系統、賣家庫存、物流發貨等多個業務邏輯。如果將這些邏輯全部在下單流程中,需要全部變更完成后,才能返回下單結果。這種業務邏輯存在如下問題:

  • 下單流程和耗費的時間較長,用戶體驗差。
  • 系統穩定性差,任何一個下游發生故障,將直接影響整個業務系統的可用性。

為提升核心應用用戶體驗和穩定性,您可以通過DTS提供的數據訂閱,將深耦合業務優化為通過實時消息通知實現的異步耦合,讓核心業務邏輯更簡單可靠,具體調整為:

異步解耦架構

該場景中,買家下單系統只要完成下單操作,就直接返回,底層通過DTS的數據訂閱實時獲取訂單系統的變更數據,業務通過SDK訂閱這些變更數據,并觸發庫存、物流等下游業務邏輯,實現了整個業務系統的簡單可靠。

該應用場景在阿里巴巴內部得到了廣泛的應用,例如淘寶訂單系統每天有上萬個下游業務,通過數據訂閱獲取訂單系統的實時數據更新,觸發自身的變更邏輯。

橫向擴展讀能力

傳輸方式:數據同步

對于有大量讀請求的應用場景,單個數據庫實例可能無法承擔全部的讀取壓力。您可以借助DTS的實時同步功能構建只讀實例,將讀請求分流至這些只讀實例中,實現讀能力的彈性擴展,分擔主數據庫實例的壓力。

用于數據倉庫的任務調度

傳輸方式:數據遷移

對于每天處理大量事務數據的大型在線應用程序,您可能需要采用“次日倉庫策略”,定期將數據傳輸到數據倉庫。 例如,您希望將遷移安排在業務低峰期,以便將當天的事務數據傳輸到數據倉庫。 通過該部署,您的分析系統可以處理一天前的數據。