ETL工具之Streamsets实战系列(四) -- Mysql Binlog数据变更同步到Kafka

1、业务背景

上一篇文章中,我们介绍了如何实现数据库之间数据实时同步的问题,本文我们将继续探讨streamsets的Mysql Binlog组件将数据同步到消息中间件的流程。

日常开发中,我们的系统通常会使用redis服务作为缓存使用,抑或使用消息中间件进行数据存储,以便其他服务调用然后进行业务处理。

本文针对如上场景介绍下数据库与消息中间价kafka之间的数据同步问题,实现数据变更实时同步到kafka服务供其他服务调用消费。

注意:使用kafka进行存储时,需要安装好kafka服务,并提前创建好主题,以便kafka组件配置使用,此处不作详细介绍,自行实现。

2、流程实现

数据变更实时同步时,流程的完整管道示意图如下所示:

具体实现按照以下步骤进行操作:

2.1 创建管道任务

在SDC中创建一个新的Pipeline,创建过程如下图

2.2 选择源并添加配置信息

Mysql Binlog组件的配置如下:图中的server id要唯一,不能和已启动的Mysql binlog组件有冲突,否则启动报错

数据库用户名密码配置

2.3 目标源配置

kafka组件配置:Broker URI配置组件的ip和端口信息,比如ip:9092,Topic为消息主题,即将变更的数据记录到该主题以便消费

kafka高级部分的配置如下:此处配置kafka消息的key值

数据格式配置:此处采用默认数据格式即可,及json格式

2.4 启动任务并测试

测试流程比较简单,我们只需要对源数据库的数据进行增删改操作,观察kafka服务对应主题上的数据变化即可。

由于我的kafka服务是使用docker-compose安装的,服务启动的情况下,可以先进入容器,然后进入bin目录,如图所示

执行kafka-topics -list --zookeeper ip:2181命令查看当前有哪些主题

查看主题推送的信息,命令如下

kafka-console-consumer --bootstrap-server ip:9092 --topic 消息主题名称 --from-beginning

此时,我们往数据库新增一条数据,看下kafka中对应主题的消息推送情况

新增的数据如下:

主题实时推送的情况如下:

同理,我们也可以编辑或删除一些数据,查看主题的实时推送情况。

3、总结

在本文中,我们详细介绍了StreamSets组件实现数据实时同步到消息中间件的功能。如果这篇文章对你有所帮助的话,希望可以一键三连,您的认可和鼓励就是我创作的最大动力!

相关推荐
Escape7 分钟前
为什么你的 AI 越聊越傻?从 Token 到 Agent,彻底搞懂 AI Agent的秘密㊙️
前端·人工智能·后端
用户40966601317511 小时前
Lombok 你用对了吗?@Data 之外的 6 个隐藏神器
java·后端·代码规范
GlobalHRTalk1 小时前
埃及名义雇主EOR业务概述与市场发展优势分析
大数据·运维·人工智能
董员外1 小时前
RAG 系统进化论(二):Naive RAG,检索增强生成的最小闭环
前端·人工智能·后端
掘金一周1 小时前
看看大家每月的成本有多少 | 沸点周刊 7.30
前端·人工智能·后端
aramae1 小时前
C++ IO流完全指南:从C标准库到C++流式编程
服务器·c语言·开发语言·c++·后端
SelectDB2 小时前
Apache Doris 事务保障实战教程:从三阶段提交到 Flink 精确一次写入
后端
SelectDB2 小时前
Apache Doris 向量化执行实战教程:从 CPU 指令到性能验证的完整实践
后端
神奇小汤圆2 小时前
别再乱排查了!Kafka 消息积压、重复、丢失,根源基本都是 Rebalance!
后端
码云数智-园园2 小时前
Hyperf 协程 PHP 实战:传统 PHP 如何实现高并发服务
大数据