当持久化DB使用RDS,缓存使用MongoDB或Redis时,怎么使用DTS实现缓存更新-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

当持久化DB使用RDS,缓存使用MongoDB或Redis时,怎么使用DTS实现缓存更新

2017-10-31 14:18:54 3572 0
为提高业务访问速度,提升业务读并发,很多用户会在业务架构中引入缓存层。业务读请求路由到缓存层,通过缓存的内存读取机制提升业务读取性能。为了保证数据完整性,业务的更新数据可以落到持久化存储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. 点击控制台右上角 [backcolor=transparent]创建Access Key ,创建Access Key/Access Secret。


安装JAVA SDK


DTS提供的JAVA SDK支持的开发环境为:J2SE Development Kit (JDK) 1.5或以上版本。
下面以Eclipse工程为例,简单介绍SDK的安装步骤:
  1. 登录[backcolor=transparent]SDK下载页面,下载最新数据订阅SDK包 [backcolor=transparent]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配置。<dependency>
  5. <groupId>com.vividsolutions</groupId>
  6. <artifactId>jts</artifactId>
  7. <version>1.13</version>
  8. </dependency>
  9. <dependency>
  10. <groupId>org.mongodb</groupId>
  11. <artifactId>mongo-java-driver</artifactId>
  12. <version>3.2.0</version>
  13. </dependency>


在pom.xml中完成maven配置后,右键点击project,选择Maven->Update Project,进行Maven依赖更新。
修改Demo中的AccessKeyID,AccessKeySecret,订阅通道ID,mongUrl,mongUserName,mongUserPassword,其中:
  • AccessKeyID 为上面创建的AccessKey
  • AccessSecret 为AccessKey对应的AccessSecret
  • Subscription_Instance_ID 为订阅通道ID
  • mongoUrl 为要同步的MongoDB的连接地址,连接串格式为:
  • [backcolor=transparent]MongoDB连接地址:MongoDB监听端口/默认连接数据库,例如:120.26.122.72:27037/admin1
  • mongUserName 为访问MongoDB的数据库账号

  • mongUserPassword 为访问MongoDB的数据库账号对应的密码

在Eclipse中右击demo文件 -> 运行方式 –> Java应用程序,即成功运行示例demo。

Redis缓存更新demo运行示例



Access Key 创建


缓存更新Demo运行时,需要配置订阅通道所属阿里云账号的Access Key/Access Secret。所以在运行Demo之前,需要先创建Access Key。如果阿里云账号已经创建过Access Key,那么不需要重新创建。如果未创建,那么具体操作步骤如下:
  1. 登录阿里云控制台,点击右上角的阿里云账号,进入账号管理中心。
  2. 点击头部的AccessKeys,进入Access Key 管理页面。
  3. 点击控制台右上角 [backcolor=transparent]创建Access Key,创建Access Key/Access Secret。


安装JAVA SDK


DTS提供的JAVA SDK支持的开发环境为:J2SE Development Kit (JDK) 1.5或以上版本。
下面以Eclipse工程为例,简单介绍SDK的安装步骤:
  1. 登录[backcolor=transparent]SDK下载页面,下载最新数据订阅SDK包 [backcolor=transparent]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配置。 <dependency>
  5. <groupId>com.vividsolutions</groupId>
  6. <artifactId>jts</artifactId>
  7. <version>1.13</version>
  8. </dependency>
  9. <dependency>
  10. <groupId>redis.clients</groupId>
  11. <artifactId>jedis</artifactId>
  12. <version>2.7.2</version>
  13. </dependency>


在pom.xml中完成maven配置后,右键点击project,选择Maven->Update Project,进行Maven依赖更新。
修改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的数据库账号

在Eclipse中右击demo文件 -> 运行方式 –> Java应用程序,即成功运行示例demo。
至此,完成通过DTS数据订阅功能,MongoDB/Redis 数据更新Writer实现高可靠、低延迟缓存更新策略。
取消 提交回答
全部回答(0)
相关问答

1

回答

Redis如何应用于缓存场景?

2021-10-19 19:13:00 281浏览量 回答数 1

1

回答

Redis如何应用于会话缓存场景?

2021-10-19 19:13:36 259浏览量 回答数 1

1

回答

Redis如何应用于全页缓存场景?

2021-10-19 19:14:21 224浏览量 回答数 1

0

回答

阿里云集群版 redis 代理模式,是不是不支持 flushdb?

2022-08-24 18:00:24 176浏览量 回答数 0

1

回答

大佬们想问个问题,现在Flink 可以sink到 加密的redis集群了吗?

2022-08-04 10:24:00 136浏览量 回答数 1

1

回答

flink -redis sink 可以sink 到集群吗?

2022-08-01 14:08:41 258浏览量 回答数 1

0

回答

seata版本1.5.1数据源支持redis集群吗?

2022-07-11 17:17:57 347浏览量 回答数 0

0

回答

redis-shake这个集群redis怎么配置的呢?

2022-07-04 09:26:49 205浏览量 回答数 0

1

回答

jedis访问云ECS Redis集群

2017-06-04 20:49:46 2016浏览量 回答数 1

1

回答

如何连接docker redis集群

2016-09-11 23:12:23 3489浏览量 回答数 1
+关注
云栖大讲堂
擅长前端领域,欢迎各位热爱前端的朋友加入我们( 钉钉群号:23351485)关注【前端那些事儿】云栖号,更多好文持续更新中!
文章
问答
问答排行榜
最热
最新
相关电子书
更多
Redis&MongoDB的同步、迁移以及混合云场景构建
立即下载
Data as a Service - 数据即服务 -- MongoDB⾼级应⽤模式
立即下载
Codis 集群演化与 Redis 异步迁移
立即下载