全部產品
Search
文件中心

Data Transmission Service:通過資料訂閱實現緩衝更新策略

更新時間:Aug 20, 2024

DTS(Data Transmission Service)的資料訂閱功能結合MongoDB或Redis,可以實現高可靠、低延遲的緩衝更新策略。本文以源為RDS MySQL、目標為阿里雲資料庫Redis版為例,為您介紹緩衝更新策略。

前提條件

背景資訊

為提高業務訪問速度,提升業務讀並發,在業務架構中引入了緩衝層。業務的讀請求路由到緩衝層,通過緩衝的記憶體讀取機制提升業務讀取效能;同時,為保證資料的完整性,業務的更新資料持久化儲存至RDS MySQL中。此時,業務需要實現緩衝更新策略,保證業務資料更新後,緩衝中的資料能夠被同步更新。

操作步驟

本文以IntelliJ IDEA軟體為例,介紹如何運行SDK範例程式碼來消費訂閱資料。

  1. 下載資料訂閱SDK範例程式碼檔案,然後解壓該檔案。

  2. 使用IntelliJ IDEA軟體,以Maven工程開啟解壓後的SDK範例程式碼檔案。

  3. /subscribe-demo/src/main/java/com/alibaba/dts/demo/路徑下,雙擊開啟DTSMySQL2RedisDemo.java檔案。

  4. 修改main函數中的參數。

    需要修改如下圖所示的綠色字型,例如String brokerUrl = "your broker url";中的your broker urlimage.png

    • 資料訂閱任務參數

      參數

      說明

      擷取方式

      brokerUrl

      資料訂閱通道的網路地址及連接埠號碼資訊。

      說明
      • 如果您部署SDK用戶端所屬的ECS執行個體與資料訂閱通道屬於傳統網路或同一專用網路,建議通過內網地址進行資料訂閱,網路延遲最小。

      • 不建議使用公網地址。

      在DTS控制台單擊目標訂閱執行個體ID,在基本資料頁面的網路地區,您可以擷取網路地址及連接埠號碼資訊。網路

      topic

      資料訂閱通道的訂閱Topic。

      在DTS控制台單擊目標訂閱執行個體ID,在基本資料頁面的基本資料地區,您可以擷取到訂閱Topictopic

      sid

      消費組ID。

      在DTS控制台單擊目標訂閱執行個體ID,然後單擊資料消費,您可以擷取到消費組ID和消費組的帳號資訊。

      說明

      消費組帳號的密碼已在您建立消費組時指定。

      消費組帳號

      userName

      消費組的帳號。

      警告

      如您未使用本文提供的用戶端,請按照<消費組的帳號>-<消費組ID>的格式設定使用者名稱(例如:dtstest-dtsae******bpv),否則無法正常串連。

      password

      該帳號的密碼。

      initCheckpoint

      消費位點,即SDK用戶端消費第一條資料的時間戳記,格式為Unix時間戳記,例如1620962769。

      說明

      消費位點資訊可用於:

      • 當業務程式中斷後,傳入已消費位點繼續消費資料,防止資料丟失。

      • 在訂閱用戶端啟動時,傳入所需的消費位點,調整訂閱位點,實現按需消費資料。

      消費位點必須在訂閱執行個體的資料範圍(如圖示)之內,並需轉化為Unix時間戳記。資料範圍

      說明

      Unix時間戳記轉換工具可用搜尋引擎擷取。

      ConsumerContext.ConsumerSubscribeMode subscribeMode

      SDK用戶端的使用模式,取值為:

      • ConsumerContext.ConsumerSubscribeMode.ASSIGN:ASSIGN模式,即一個消費組下僅支援一個SDK用戶端消費訂閱資料。

      • ConsumerContext.ConsumerSubscribeMode.SUBSCRIBE:SUBSCRIBE模式,即支援在同一個消費組下同時啟動多個SDK用戶端實現災備。

    • 目標Redis執行個體參數

      參數

      說明

      擷取方式

      redisUrl

      Redis執行個體的網路地址資訊。

      進入Redis執行個體的執行個體資訊頁簽,在串連資訊地區擷取公網訪問串連地址

      redisPort

      Redis執行個體的連接埠資訊。

      進入Redis執行個體的執行個體資訊頁簽,在串連資訊地區擷取公網訪問連接埠號碼(Port)

      redisPassword

      消Redis執行個體的帳號及密碼。

      重要

      資料庫密碼格式為<user>:<password>。例如,Redis執行個體自訂的使用者名稱為admin,密碼為Rp829dlwa,則此處填入的資料庫密碼為admin:Rp829dlwa。

      在您建立Redis執行個體時已指定。

      說明

      若您忘記密碼,可以重新設定執行個體的密碼,詳情請參見修改或重設密碼

  5. 在IntelliJ IDEA軟體介面的頂部,單擊Run > Run運行該程式。

執行結果

  1. 登入訂閱的來源資料庫,在訂閱的源表中插入幾條資料。

    可以查看到該程式訂閱到了對應的增量資料變更,然後將對應的資料寫入到目標資料庫。

    Redis緩衝代碼運行結果

  2. 登入目標資料庫,查詢對應的資料。

    可查看到對應的資料已正常寫入。

    Query result for the Redis database