构建基于Kafka中转的混合云在线数据同步-CloudCanal实战
2021/8/7 13:06:05
本文主要是介绍构建基于Kafka中转的混合云在线数据同步-CloudCanal实战,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
本文介绍了如何实现mysql 同步数据到Kafka实现混合云在线数据同步
**[junyu-cloudcanal] www.askcug.com/user/junyu-cloudcanal **
简介
本文主要介绍如何使用 CloudCanal 快速构建安全的混合云在线数据生态,完全使用 CloudCanal SAAS 能力达成。
此方案具有以下几个特点
- 采用 Kafka 做数据中转
- 双边数据库都不开公网端口
- 互联网数据经过 SSL 加密
- 数据出口经过用户名、密码验证,并设置 ip 白名单加强安全管控
例子中的云数据库、云消息产品、自建数据库等都可以替换成自己当前环境的自建资源或各种云资源。
技术点
混合云数据生态主要的难点在于 网络安全 ,部分用户因为传输同步数据较多,也比较在意流量资源损耗。
基于 CloudCanal 实现的方案,更加关注 网络安全 层面的问题,做到敏感资源 网络单向隔离、链接鉴权、传输加密。
下图简要示例了下 互联网模式 和 专线模式 数据上下云。
举个"栗子"
本文案例主要演示 互联网模式 的跨云数据迁移和同步,具体场景是如何进行数据上云(自建机房数据库-> 阿里云云数据库),并且长期维持混合云数据体系。当然,相同的方案也可以反过来使用,只是在数据源选择外网内网有所区别。
安装 CloudCanal
- 准备一个 ECS 和 自有机房虚拟机,并按照 [ECS安装客户端]和 [自建机器安装客户端]文档分别安装。
准备 Kafka
-
在阿里云 Kafka 购买页
购买相应的 Kafka , 验证能力可先购买按量实例
- 注意选择 公网/VPC实例,并且选择稍大的公网流量
-
部署实例请选择 2.x.x 版本,最大消息大小 建议调整稍大些(比如 4MB)
-
进入实例,创建 Consumer Group,并记下名称
子账号授权并添加数据源
- 按照 [阿里云子账号准备] 文档,创建或者授权子账号,并记住子账号 AK 和 SK , 请授予基本的数据库访问权限
AliyunRDSFullAccess
,AliyunKafkaFullAccess
- 分别添加云下自建数据库、阿里云 RDS for MySQL 和 阿里云 Kafka
- 添加阿里云资源时,请在第二步选择自动添加迁移机器白名单
- Kafka 用户名密码可以在 阿里云 Kafka 实例详情页最底下安全配置处找到
- TLS 文件请从 [阿里云Kafka根证书下载]
开始造数据
- 源端数据库为云下自建数据库,IUD 20:60:20, 1~2 KB/条数据, 每个表 2~4 并发, 每个事务 2~4 条变更, RPS 1000 左右。
使用 CloudCanal 创建云下数据同步任务
-
选择数据源,并选择合适的选项
- 1 处请选择云下或自建集群
- 2 ,3 源端自建数据库选择内网,对端 Kafka 选择公网
- 4 处可以选择兼容 开源 Canal 消息格式,或自带的 CloudCanal 消息格式
-
选择数据同步,并勾选初始化数据
-
选择表,此处不要修改对端 topic,按照默认规则生成即可。
-
选择列,可以裁剪掉一部分列不进行迁移同步
-
创建确认
-
任务正常流转运行中
使用 CloudCanal 创建云上迁移同步任务
-
选择数据源,并选择合适的选项
- 1 请选择 ECS 上客户端所在集群
- 2,3 都选择内网分别访问 Kafka 和 RDS for MySQL
- 4 填写之前在 Aliyun Kafka 控制台创建的 Consumer Group
- 5 选择和云下任务一致的消息格式
-
中间略过表、列选择,一路点击下一步即可
-
创建确认
-
两者任务正常运行中
-
云上消费任务创建因为是在云下任务运行之后,所以需要将云上消费任务位点回溯到云下任务创建之前,以涵盖全部数据。
校验下数据
此次案例为了校验数据,我们偷个懒,直接打开 RDS for MySQL 公网链接,用云下 CloudCanal 集群链接过来直接做一个数据校验 (生产环境禁止!!!!)
-
为了让校验结果更加清晰,停止造数据
-
申请 RDS for MySQL 公网地址,并修改 CloudCanal 数据源管理页面对应实例的公网地址
-
创建校验任务
- 1 选择云下或本地集群
- 2 ,3 源端自建 MySQL 选择内网访问,目标端 RDS for MySQL 选择外网访问
-
选择任务类型为数据校验
-
中间略过表、列选择,一路点击即可
-
创建确认
-
任务运行完毕,结果正确
总结
本文简要介绍如何使用 CloudCanal SAAS 能力快速构建一条安全、跨互联网数据迁移同步方案。
此方案有以下特点:
- 双边数据库都不开公网端口
- 互联网数据经过 SSL 加密
- 数据出口经过用户名、密码验证,并设置 ip 白名单加强安全管控
这篇关于构建基于Kafka中转的混合云在线数据同步-CloudCanal实战的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-27文件掩码什么意思?-icode9专业技术文章分享
- 2024-12-27如何使用循环来处理多个订单的退款请求,代码怎么写?-icode9专业技术文章分享
- 2024-12-27VSCode 在编辑时切换到另一个文件后再切回来如何保持在原来的位置?-icode9专业技术文章分享
- 2024-12-27Sealos Devbox 基础教程:使用 Cursor 从零开发一个 One API 替代品 审核中
- 2024-12-27TypeScript面试真题解析与实战指南
- 2024-12-27TypeScript大厂面试真题详解与解析
- 2024-12-26怎么使用nsenter命令进入容器?-icode9专业技术文章分享
- 2024-12-26导入文件提示存在乱码,请确定使用的是UTF-8编码怎么解决?-icode9专业技术文章分享
- 2024-12-26csv文件怎么设置编码?-icode9专业技术文章分享
- 2024-12-25TypeScript基础知识详解