全部产品
数据传输服务DTS

缓存更新策略

更新时间:2017-06-07 13:26:11   分享:   

为提高业务访问速度,提升业务读并发,很多用户会在业务架构中引入缓存层。业务读请求路由到缓存层,通过缓存的内存读取机制提升业务读取性能。为了保证数据完整性,业务的更新数据可以落到持久化存储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实现高可靠、低延迟缓存更新策略。

本文导读目录
本文导读目录
以上内容是否对您有帮助?