DTS(Data Transmission Service)的資料訂閱功能結合MongoDB或Redis,可以實現高可靠、低延遲的緩衝更新策略。本文以源為RDS MySQL、目標為雲資料庫Tair(相容Redis)為例,為您介紹緩衝更新策略。
前提條件
已完成資料訂閱通道的配置並新增消費組,詳情請參見建立RDS MySQL資料訂閱任務和新增消費組。
已建立雲資料庫Tair(相容Redis)並允許公網訪問,詳情請參見步驟1:建立執行個體和申請公網串連地址。
說明您需要將用戶端的IP地址或IP位址區段添加到Redis執行個體的白名單中,詳情請參見設定IP白名單。
背景資訊
為提高業務訪問速度,提升業務讀並發,在業務架構中引入了緩衝層。業務的讀請求路由到緩衝層,通過緩衝的記憶體讀取機制提升業務讀取效能;同時,為保證資料的完整性,業務的更新資料持久化儲存至RDS MySQL中。此時,業務需要實現緩衝更新策略,保證業務資料更新後,緩衝中的資料能夠被同步更新。
操作步驟
本文以IntelliJ IDEA軟體為例,介紹如何運行SDK範例程式碼來消費訂閱資料。
下載資料訂閱SDK範例程式碼檔案,然後解壓該檔案。
使用IntelliJ IDEA軟體,以Maven工程開啟解壓後的SDK範例程式碼檔案。
在/subscribe-demo/src/main/java/com/alibaba/dts/demo/路徑下,雙擊開啟DTSMySQL2RedisDemo.java檔案。
修改main函數中的參數。
需要修改如下圖所示的綠色字型,例如
String brokerUrl = "your broker url";
中的your broker url
。資料訂閱任務參數
參數
說明
擷取方式
brokerUrl
資料訂閱通道的網路地址及連接埠號碼資訊。
說明如果您部署SDK用戶端所屬的ECS執行個體與資料訂閱通道屬於傳統網路或同一專用網路,建議通過內網地址進行資料訂閱,網路延遲最小。
不建議使用公網地址。
在DTS控制台單擊目標訂閱執行個體ID,在基本資料頁面的網路地區,您可以擷取網路地址及連接埠號碼資訊。
topic
資料訂閱通道的訂閱Topic。
在DTS控制台單擊目標訂閱執行個體ID,在基本資料頁面的基本資料地區,您可以擷取到訂閱Topic。
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執行個體時已指定。
說明若您忘記密碼,可以重新設定執行個體的密碼,詳情請參見修改或重設密碼。
在IntelliJ IDEA軟體介面的頂部,單擊
運行該程式。
執行結果
登入訂閱的來源資料庫,在訂閱的源表中插入幾條資料。
可以查看到該程式訂閱到了對應的增量資料變更,然後將對應的資料寫入到目標資料庫。
登入目標資料庫,查詢對應的資料。
可查看到對應的資料已正常寫入。