閱讀182 返回首頁    go 阿裏雲


緩存更新策略__最佳實踐_數據傳輸-阿裏雲

為提高業務訪問速度,提升業務讀並發,很多用戶會在業務架構中引入緩存層。業務讀請求路由到緩存層,通過緩存的內存讀取機製提升業務讀取性能。為了保證數據完整性,業務的更新數據可以落到持久化存儲RDS。此時,業務需要實現緩存更新策略,保證業務數據更新後,緩存中的數據能夠被同步更新。

緩存失效竟然可以這麼解? 所述,通過DTS的數據訂閱功能,可以實現高可靠、低延遲的緩存更新策略。

本小節介紹,當持久化DB使用RDS,緩存使用MongoDB或Redis時,怎麼使用DTS實現緩存更新。

緩存更新步驟

使用DTS提供了RDS MySQL增量數據訂閱的功能實現緩存更新,持久化RDS到緩存MongoDB/Redis的更新數據同步需要進行兩個步驟的操作:

  1. 在DTS控製台創建RDS實例的訂閱通道,具體創建步驟詳見 創建訂閱通道
  2. 封裝DTS提供的SDK,從訂閱通道中監聽並實時獲取RDS增量數據,根據業務需求,將增量數據封裝成MongoDB/Redis的數據更新語句後,同步運行到緩存MongoDB/Redis中,從而實現RDS->MongoDB/Redis增量數據實時同步,實現高可靠、低延遲緩存更新。

為降低用戶使用門檻,DTS提供了封裝DTS SDK 實現增量數據同步到MongoDB/Redis的demo,下文詳細介紹運行這些示例demo的具體流程。

MongoDB緩存更新demo運行示例

Access Key 創建

緩存更新Demo運行時,需要配置訂閱通道所屬阿裏雲賬號的Access Key/Access Secret。所以在運行Demo之前,需要先創建Access Key。如果阿裏雲賬號已經創建過Access Key,那麼不需要重新創建。如果未創建,那麼具體操作步驟如下:

  1. 登錄阿裏雲控製台,點擊右上角的阿裏雲賬號,進入賬號管理中心。
  2. 點擊頭部的AccessKeys,進入Access Key 管理頁麵。
  3. 點擊控製台右上角 創建Access Key ,創建Access Key/Access Secret。

安裝JAVA SDK

DTS提供的JAVA SDK支持的開發環境為:J2SE Development Kit (JDK) 1.5或以上版本。

下麵以Eclipse工程為例,簡單介紹SDK的安裝步驟:

  1. 登錄SDK下載頁麵,下載最新數據訂閱SDK包 dts-subscribe-3.0.jar
  2. 進入Eclipse,創建一個maven project,右鍵點擊Project -> Properties -> Java Build Path -> Libraries->Add External JARs,選擇dts-subscribe-3.0.jar包的存放路徑,將dts-subscribe-3.0.jar添加到工程中。
  3. 選擇dts-subscribe-3.0.jar,點擊“OK”按鈕,經過以上步驟,你就可以在工程中使用DTS Java SDK了。

示例Demo運行

下麵以eclipse工程為例,簡單介紹運行MongoDB 數據更新demo的方式。

  1. 下載 MongoDB數據更新Demo
  2. 在上麵新建的project中新建類DTSMySQL2Mongo。
  3. 打開生成的Java文件DTSMySQL2Mongo,刪除裏麵的代碼模板,將示例代碼黏貼在文件DTSMySQL2Mongo中。
  4. Maven配置。

    1. <dependency>
    2. <groupId>com.vividsolutions</groupId>
    3. <artifactId>jts</artifactId>
    4. <version>1.13</version>
    5. </dependency>
    6. <dependency>
    7. <groupId>org.mongodb</groupId>
    8. <artifactId>mongo-java-driver</artifactId>
    9. <version>3.2.0</version>
    10. </dependency>

    在pom.xml中完成maven配置後,右鍵點擊project,選擇Maven->Update Project,進行Maven依賴更新。

  5. 修改Demo中的AccessKeyID,AccessKeySecret,訂閱通道ID,mongUrl,mongUserName,mongUserPassword,其中:

    • AccessKeyID 為上麵創建的AccessKey
    • AccessSecret 為AccessKey對應的AccessSecret
    • Subscription_Instance_ID 為訂閱通道ID
    • mongoUrl 為要同步的MongoDB的連接地址,連接串格式為:
    • MongoDB連接地址:MongoDB監聽端口/默認連接數據庫,例如:120.26.122.72:27037/admin1
    • mongUserName 為訪問MongoDB的數據庫賬號
    • mongUserPassword 為訪問MongoDB的數據庫賬號對應的密碼

      mongodb2mysql配置

  6. 在Eclipse中右擊demo文件 -> 運行方式 –> Java應用程序,即成功運行示例demo。

Redis緩存更新demo運行示例

Access Key 創建

緩存更新Demo運行時,需要配置訂閱通道所屬阿裏雲賬號的Access Key/Access Secret。所以在運行Demo之前,需要先創建Access Key。如果阿裏雲賬號已經創建過Access Key,那麼不需要重新創建。如果未創建,那麼具體操作步驟如下:

  1. 登錄阿裏雲控製台,點擊右上角的阿裏雲賬號,進入賬號管理中心。
  2. 點擊頭部的AccessKeys,進入Access Key 管理頁麵。
  3. 點擊控製台右上角 創建Access Key,創建Access Key/Access Secret。

安裝JAVA SDK

DTS提供的JAVA SDK支持的開發環境為:J2SE Development Kit (JDK) 1.5或以上版本。

下麵以Eclipse工程為例,簡單介紹SDK的安裝步驟:

  1. 登錄SDK下載頁麵,下載最新數據訂閱SDK包 dts-subscribe-3.0.jar
  2. 進入Eclipse,創建一個maven project,右鍵點擊Project -> Properties -> Java Build Path -> Libraries->Add External JARs,選擇dts-subscribe-3.0.jar包的存放路徑,將dts-subscribe-3.0.jar添加到工程中。
  3. 選擇dts-subscribe-3.0.jar,點擊“OK”按鈕,經過以上步驟,你就可以在工程中使用DTS Java SDK了。

示例Demo運行

下麵以eclipse工程為例,簡單介紹運行Redis 數據更新demo的方式。

  1. 下載 Redis數據更新demo
  2. 在上麵新建的project中新建類DTSMySQL2Redis。
  3. 打開生成的Java文件DTSMySQL2Redis,刪除裏麵的代碼模板,將示例代碼黏貼在文件DTSMySQL2Redis中。
  4. Maven配置。

    1. <dependency>
    2. <groupId>com.vividsolutions</groupId>
    3. <artifactId>jts</artifactId>
    4. <version>1.13</version>
    5. </dependency>
    6. <dependency>
    7. <groupId>redis.clients</groupId>
    8. <artifactId>jedis</artifactId>
    9. <version>2.7.2</version>
    10. </dependency>

    在pom.xml中完成maven配置後,右鍵點擊project,選擇Maven->Update Project,進行Maven依賴更新。

  5. 修改Demo中的AccessKeyID,AccessKeySecret,訂閱通道ID,redisUrl,redisPort,redisPassword,其中:

    • AccessKeyID 為上麵創建的AccessKey
    • AccessSecret 為AccessKey對應的AccessSecret
    • Subscription_Instance_ID 為訂閱通道ID
    • redisUrl 為要同步的Redis的連接地址,例如:120.26.122.72
    • redisPort 為Redis監聽端口
    • redisPassword 為訪問Redis的數據庫賬號

      mysql2redis配置

  6. 在Eclipse中右擊demo文件 -> 運行方式 –> Java應用程序,即成功運行示例demo。

    至此,完成通過DTS數據訂閱功能,MongoDB/Redis 數據更新Writer實現高可靠、低延遲緩存更新策略。

最後更新:2016-11-23 16:04:16

  上一篇:go 數據訂閱SDK容災__最佳實踐_數據傳輸-阿裏雲
  下一篇:go 本地IDC自建數據庫同RDS實例實時同步__最佳實踐_數據傳輸-阿裏雲