阿里云数据库迁移解决方案:实时同步RD和REDIS与Redis构建缓存一致性 领代金券

2025年2月16日00:23:06 发表评论

腾讯云服务器:[腾讯云3000元代金券]

购买可领取:[阿里云2000元代金券]

阿里云数据库迁移解决方案:实时同步RD和REDIS与Redis构建缓存一致性

 

一、方案  1。程序优势

实时同步RDS与和Redis构建缓存一致性解决方案的优势

数据真实- 时间同步

通过DTS订阅功能实时订阅Binlog数据,以实现MySQL与和Redis异构质数据库之间的数据的真实时间同步,以确保证数据的真实时性间和一致性。

同步链路稳定

数据传输服务DTS订阅功能函数,高服务化功能力,以确保证同步链路接的易用性和稳定性,针对以及及时的警报和通知,例如同步链路接异常、和链路接延迟等事件及时告警、通知。

高  有效的自定义结构转化换

提供DTS订阅MySQL BINLOG日志数据变更改事件的获取,关系型结构和KV结构逻辑映射,以及缓存CACHE Update更新Redis Code的代码端到端的示例最终。

 

二、架  其次,体系结构与和部署

实时同步RD和REDIS与Redis构建缓存一致性。通过RDS MySQL+DTS+Redis的架构,可以实现数据同步和RDS MySQL与和RedisEDIS缓存之间的数据同步和一致性。通过实时同步将MySQL数据库数据同步到RedisEDIS缓存,提高数据查询速度,降低减少数据库压力,并确保业务数据的实际时性间和准确性。

方案  概览述

在许多业务场景中(比例如商品信息查询、,库存管理、账,帐户余额查询、,交易记录查询、,用户信息查询等),为了以提高数据查询速度和降低并减少数据库压力,我们通常会使将REDIS用Redis作为缓存层。然而但是,保持MySQL与和RedisEDIS缓存之间的数据一致性是一个关键挑战。本该解决方案将探讨基于Cache-Aside Pattern缓存模式下的一种高模式探索有效的MySQL与和Redis缓存 Cache同步一致性解决方案,以确保业务数据的实时性和准确性,提高数据查询速度,降低并减少数据库压力。

方案架构

该方案提供的默认设置(例如地域、理,VPC、,VPC,安全组、v,VSwitch、WITCH,实例名称等)完成部署后在阿里云上搭建的了RDS MySQL实时数据同步到的体系结构图在云数据库 中设置的Redis进行EDIS上设置的REDIS上设置的实时数据,以加速分析的架构图如下图所示,以加速分析。在阿里云完成。在实际部署时中,您可以根据资源规计划修改部分某些设置,但是最终形成的运行操作环境与类似于以下图相似。

本方案  该计划的技术架构包括以下基础设施架构和云服务:

地  区域和可用区域:云数据库 RDS MySQL 实例、,云数据库 Redis EDIS实例以及和数据传输服务 DTS 实例必须在同一个地区域中,但是您可以选择部署在不同的可用区域部署。

1个专有网络VPC:云数据库 RDS MySQL 实例、,云数据库 Redis EDIS实例以及和数据传输服务 DTS 实例必须在同一个 VPC 网络环境中。

1个云数据库RDS MySQL版实本示例:为在线上订单/门票务等服务提供数据持久化性服务和事务交易一致性服务。

1个云数据库RedisEDIS版本实例:为提供诸如在线上订单/票务和其他服务等服务提供缓存加速、库存查询以及秒杀限流之类的服务等服务。

1个数据传输服务DTS实例:用于订阅云数据库RDS MySQL中相关的数据库表对象的BINLOGinlog日志数据。

1台云服务器 Cloud Server ECS实例:用于部署DTS订阅应用程序,用于接收数据传输服务DTS以订阅云数据库RDS实例的更新事件,并且通过应用程序对更新云数据库Redis进行更新。

 

部署准备

 

开始部署前,请按以下指引完成账号申请、账号充值、RAM用户创建和授权。

准备账号

1.如果您还没有阿里云账号,请访问阿里云账号注册页面,根据页面提示完成注册。阿里云账号是您使用云资源的付费实体,因此是部署方案的必要前提。

2.为阿里云账号充值。

为节省成本,本方案默认选择使用按量付费资源,使用按量付费资源需要确保账户余额不小于100元。

 

完成本方案的部署及体验,预计产生费用不超过20元(假设您选择下表中的相关规格资源,且运行时间不超过2小时,如果调整了资源规格,请以控制台显示的实际报价以及最终账单为准)。

 

 

云服务

规格配置

地域

预估费用参考

云服务器 ECS

规格:ecs.g5.xlarge,4 vCPU 16 GB

华东2(上海)

配置费用:1.854 元/小时

 

存储空间:40 GB(ESSD PL1云盘)

 

公网流量费用:0.800 元/GB

 

带宽:100 Mbps(按使用流量)

 

 

云数据库 RDS MySQL 版

规格:mysql.x4.medium.2c

华东2(上海)

1.8 元/小时

 

存储空间:100 GB

 

 

云数据库 Redis

规格:标准版 高可用 16GB主从版

华东2(上海)

3.00 元/小时

数据传输服务 DTS

数据订阅

华东2(上海)

3.00 元/小时

3.阿里云账号拥有操作资源的最高权限,从云资源安全角度考虑,建议您创建一个RAM用户,使RAM用户仅能操作有限的资源,然后由RAM用户完成本方案。

访问资源组页面,单击创建资源组,创建一个资源组,例如命名为Rds2Redis。

访问RAM控制台-用户页面,单击创建用户,勾选控制台访问和OpenAPI 调用访问,填写其他信息,创建一个RAM用户。

访问RAM控制台-权限策略页面,单击创建权限策略,单击脚本编辑,并复制粘贴以下内容,完成创建自定义权限策略。

 

{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": [
"ecs:Describe",
"vpc:Describe",
"ros:",
"dts:"
],
"Resource": "*"
}
]
}

 

访问RAM控制台-用户页面,授予权限。
单击目标RAM用户操作列的添加权限,选择授权范围为指定资源组(例如Rds2Redis),然后选择系统策略AliyunECSFullAccess、AliyunRDSFullAccess、AliyunKvstoreFullAccess和AliyunVPCFullAccess,单击确定。
再次单击目标RAM用户操作列的添加权限,选择授权范围为整个云账号,然后选择前面创建的自定义权限策略,单击确定。

 

4.(可选,仅首次使用DTS服务时需要创建)创建AliyunDTSDefaultRole角色,用于DTS服务访问当前云账号下的RDS、ECS等云资源。

访问RAM访问控制台-角色页面,单击创建角色,角色类型选择阿里云账号,角色名称配置为AliyunDTSDefaultRole,单击完成。

找到已创建的AliyunDTSDefaultRole角色,单击操作列的精准授权。选择权限类型为系统策略,输入策略名称为AliyunDTSRolePolicy,单击确定。

单击已创建的AliyunDTSDefaultRole角色名,切换至信任策略管理页签,单击修改信任策略,将信任策略修改为如下内容后,单击确定。

 

{
"Statement": [
{
"Action": "sts:AssumeRole",
"Effect": "Allow",
"Principal": {
"Service": [
"dts.aliyuncs.com"
]
}
}
],
"Version": "1"
}

 

一键部署

资源编排(ROS)可以让您通过YAML或JSON文件清晰简洁地描述所需的云资源及其依赖关系,然后自动化地创建和配置这些资源。您可以通过下方提供的ROS一键部署链接,来自动化地完成这些资源的创建和配置。

本文介绍的ROS模板主要完成了以下内容:

部署1个专有网络VPC。

部署1台交换机。

部署1台云服务器 ECS。

部署1个云数据库RDS MySQL。

部署1个云数据库Redis。

配置1个数据传输服务DTS订阅任务。

已在ECS中部署DTS订阅程序。

 

1.打开一键配置模板链接前往ROS控制台,系统自动打开使用新资源创建资源栈的面板。

2.确认好地域后(本教程以华东2(上海)地域为例),在配置参数模板步骤中配置资源栈名称、ECS和Database。

3.单击下一步,跳转至资源预览页,单击创建,系统将自动创建并部署本教程所需的资源。

4.当资源栈信息页面的状态显示为创建成功时表示一键配置完成。

5.单击资源页签,找到已创建的RDS实例,单击实例ID,进入RDS实例详情页,获取RDS的公网连接地址。

6.登录RDS实例,向源端 RDS MySQL 上写入、更新、删除相关数据,以模拟RDS MySQL上面的数据变更。

 

 

数据同步结果验证

更新RDSMyYSQL数据

在上一步中,您已经在数据传输服务DTS管理控制台上配置了DTS延迟告警、报,检查了DTS同步延迟等情况,。接下来,您可以向在源端 RDS M mySQL sql上编写入、,更新、和删除相关数据,以模拟RDS MySQL上面的述数据变更改,比例如可以模拟TPCC压力测试程序等或者以业务系统真的实的际更新数据,以观察DTS订阅情况等。

通过  在运行DTS运行程序的标准输出日志情况之后,您可以在订阅源数据上观察到DTS订阅任务在订阅源端数据变的更的情况改,如图所示:

检查Redis的最新数据

在上一步中,您已经部署好了数据传输服务DTS数据订阅程序,并且对数据更新发生在源端RDS M mySQL有数据更新行为发生sql中,即,在RDS M mySQL实例中已经有,BINLOG日志的已更新,通过上述步骤可以观察到DTS。订阅程序可以订阅到BINLOGinlog的最新事件,接下来然后检查是否在RedisEDIS实例中是否已经有编写和更新了最新的数据写入和更新。

通过诸如Redis客户端等之类的工具连接到RedisEDIS,检查RedisEDIS实例中的最新的数据,并且针对验证其中的key进行验证密钥,如图所示:

同时,也您还可以通过如MySQL客户端等工具连接到RDS MySQL实例,以检查与RDS MySQL实例中相对应的最新数据,如图所示:

检查DTS订阅延迟

在上一步中,您已经部署好了数据传输服务DTS数据订阅程序,并且对数据更新行为发生在源端RDS MySQL有数据更新行为发生,中。接下来,您需要对验证DTS订阅和数据同步的效果进行验证。针对于生产环境,建议您在数据传输服务的DTS控制台上配置好对DTS订阅程序的监控视和警报警等。

1.。登录数据传输服务DTS管理控制台。

2.。在顶部菜单栏中,选择被“授权的资源组”(本文以RdsDS2Redis为例)和地域区(本文以华东中国为例2(上海)地域为例)。

3.。在左侧的导航栏中,选择数据订阅。

4.。在“订阅任务”页面中,定位到将在上述步骤中创建的订阅任务放置,在然后单击“操作”列上点击的任务详情细信息。

5.进。输入任务详情细信息页面后,在选择左侧导航栏选择上的数据消费耗,点单击任务管理。

6.。查看页面,例如增量数据采收集等页面,检查DTS订阅的延迟情况等,。如图所示:

完成及整并清理

方案验证

完成了数据同步结果验证等的步骤后,您可以通过配置和观察DTS监控视警报警、,性能监控等来观察数据同步的可用性、和延迟等,并通过观察RDS MySQL实例和ReDS MySQL实例和rdis mysql实例中相关的记录来和验证同步同步的正确性相关记录在重复实例中。性和一致性(请注意考虑延迟带来的不一致情况)。

清理晰的资源

在本方案此计划中,您创建了1一个专有网络VPC、,1台交换机、个开关,1个云数据库 RDS MySQL 实例、,1个云数据库 Redis EDIS实例、,1个数据传输服务DTS实例以及和1个云服务器ECS实例。测试完该方案后,您可以在ROS控制台中找到目标资源堆栈,然后直接删除资源堆栈即可(删除时后,选择删除方式选择为释放法以发布资源)。

 

  第三、,应用场景程序方案

商品信息  实际- 时间同步产品信息

面向电商行业等,  通过实时同步RDS库中的商产品信息数据到Redis,面对E-商务行业等,以实时同步,重新缓存,提高商产品信息查询速度,提升并改善用户的购物体验。

社交会信息快迅速传播

在社交媒体领域,通过真实的时间同时同步在线数据库中的用户信息数据到Redis缓存,提高以增加用户信息查询速度,提升并改善用户体验。

账单信息高有效查询

在金融等场景财务和其他方案中,通过实时同步存储在关系型数据库中存储的账帐户余额数据到以实际时间同时同步与RedisEDIS缓存,以提高账帐户余额的查询速度,提升率并改善用户体验。

官方网站的相关地址直达很简单:

1.。更多阿里云解决方案查询:https://www.aliyun.com

 

2.。阿里云服务器ECS相关活动:https://www.aliyun.com/daily-act/ecs/activity_selection

 

3.云小站(代金券发布平台):https://www.aliyun.com/minisite/goods

通过DTS数据订阅功能,用户可以实时同步将RDS日志变更同步到RedisEDIS,以实现高速缓存更新和与MySQL与和Redis之间的一致性。这种Cache-Aside Pattern此缓存模式模式可确保通过DTS服务确保同步数据同步的高效性率和稳定性,优化商产品信息和账帐单信息的实时同步与和查询性能,并提升高系统响应速度。

腾讯云服务器:[腾讯云3000元代金券]

购买可领取:[阿里云2000元代金券]

  • 我的微信
  • 这是我的微信扫一扫
  • weinxin
  • 我的微信公众号
  • 我的微信公众号扫一扫
  • weinxin
阿里云最新代金券免费领取

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: