使用debezium实现cdc实时数据同步功能记录
Debezium 是一个用于变更数据捕获的开源分布式平台。能够保证应用程序就可以开始响应其他应用程序提交到您数据库的所有插入、更新和删除操作。Debezium 持久、快速,因此即使出现问题,您的应用程序也能快速响应,绝不会错过任何事件。Debezium 默认使用Kafka来投递数据,在事务日志中记录提交到每个数据库表的所有行级变更。每个应用程序只需读取其感兴趣的事务日志,即可按事件发生的相同顺序查看所有事件。
一)安装部署
debezium需要安装kafka环境
从网站 https://debezium.io 下载最新debezium连接器包debezium-connector-mysql,解压后放到kafka的plugins插件文件夹里,如图

二)配置
1.mysql打开binlog
2.mysql中新增用户,给对应的权限
3.修改kafka里config配置connect-debezium-mysql.properties
#实例名称,保持默认
name=debezium-mysql-snweb-connector
#入口类名,请勿修改
connector.class=io.debezium.connector.mysql.MySqlConnector
#目标数据库地址
database.hostname=
#目标数据库端口
database.port=3306
#数据库用户
#注意此用户必须至少具有SELECT, RELOAD, SHOW DATABASES, REPLICATION SLAVE, REPLICATION CLIENT 权限
database.user=cdc
#数据库密码
database.password=
#数据库实例编号,保持默认
database.server.id=1
#数据库时区 https://en.wikipedia.org/wiki/List_of_tz_database_time_zones
database.connectionTimeZone=Asia/Shanghai
#数据变更所属主题前缀,建议名称为 数据库名_cdc
topic.prefix=
#要监听数据变更的数据库
database.include.list=
#不监听的数据库表,多个表之间使用英文逗号隔开
#table.exclude.list=snweb-jl.auditlog,snweb-jl.log,snweb-jl.handsetmessage,snweb-jl.terminalmessage,snweb-jl.handsetlog
#数据变更消息投递目标kafka服务器
schema.history.internal.kafka.bootstrap.servers=localhost:9092
#数据库结构变更消息所属主题,建议名称为 数据库名称_dbhistory
schema.history.internal.kafka.topic=
#是否监听数据库结构变更,保持默认
include.schema.changes=true
#是否包含原始查询语句,保持默认
include.query=true
#注意如果要接收1MB以上的数据,需要设置该值
producer.max.request.size = 67108864
在kafka根目录启动命令:bin/connect-standalone.sh config/connect-standalone.properties config/connect-debezium-mysql.properties
三)订阅数据查看
使用offset,原kafka tools连接kafka查看数据

四)程序订阅数据
编写C#或者Java等程序读取kafka里的数据,代码自行编写或者搜索,就不列举了。
主要注意消息体里,before是修改前数据,after是修改之后数据,包括数据结构也在消息体里,可以根据业务自行操作
注意如果要接收1MB以上的数据,需要设置该值producer.max.request.size值,
使用debezium实现cdc实时数据同步功能记录的更多相关文章
- Tapdata Real Time DaaS 技术详解 PART I :实时数据同步
摘要:企业信息化过程形成了大量的数据孤岛,这些并不连通的数据孤岛是企业数字化转型的巨大挑战.Tapdata Real Time DaaS 采用的CDC模式,具有巨大的优势,同时是一个有技术壁垒的活 ...
- Linux系统实时数据同步inotify+rsync
一.inotify简介 inotify是Linux内核的一个功能,它能监控文件系统的变化,比如删除.读.写和卸载等操作.它监控到这些事件的发生后会默认往标准输出打印事件信息.要使用inotify,Li ...
- 【linux运维】rsync+inotify与sersync+rsync实时数据同步笔记
Rsync(remote sync)远程同步工具,通过rsync可以实现对远程服务器数据的增量备份通过,但rsync自身也有缺陷,同步数据时,rsync采用核心算法对远程服务器的目标文件进行对比,只进 ...
- Tapdata 在线研讨会:实时数据同步应用场景及实现方案探讨
数字化时代的到来,企业业务敏捷度的提升,对传统的数据处理和可用性带来更高的要求,实时数据同步技术的发展,给基于数据的业务创新带来了更多的可能性.9月8日晚,Tapdata 联合MongoDB 中文社区 ...
- sersync+rsync实时数据同步
sersync+rsync实时数据同步 1.相关背景介绍 前面有关文章配置实现了rsync增量同步以及配置为定时同步,但是在实际生产环境中需要实时的监控数据从而进行同步(不间断同步),可以采取inot ...
- Linux学习系列之Inotify+Rsync实现实时数据同步
Inotify简介 inotify介绍 inotify是一种强大的.异步的文件系统监控机制,linux内核从2.6.13起,加入了inotify的支持,通过inotify可以监控文件系统中添加.删除. ...
- rsync+inotify实时数据同步多目录实战
rsync+inotify实时数据同步多目录实战 inotify配置是建立在rsync服务基础上的配置过程 操作系统 主机名 网卡eth0 默认网关 用途 root@58server1 1 ...
- rsync+inotify实时数据同步单目录实战
rsync+inotify实时数据同步单目录实战 rsync+inotify实时数据同步单目录实战 inotify是一个强大的.细粒度的.异步的文件系统事件监控机制,linux内核从2.6.13起 ...
- TiDB 作为 MySQL Slave 实现实时数据同步
由于 TiDB 本身兼容绝大多数的 MySQL 语法,所以对于绝大多数业务来说,最安全的切换数据库方式就是将 TiDB 作为现有数据库的从库接在主 MySQL 库的后方,这样对业务方实现完全没有侵入性 ...
- 三十、sersync高级同步工具实时数据同步架构
一.项目介绍 Sersync项目利用inotity与rsync技术实现对服务器数据实时同步的解决方案,其中inotity用于监控sersync所在服务器上的文件变化. Sersync项目的优点: 1. ...
随机推荐
- Fabric区块链浏览器(1)
本文是区块链浏览器系列的第三篇,本文介绍区块链浏览器的主体部分,即区块数据的解析. 这一版本的区块链浏览器是基于gin实现的,只提供三种接口: /block/upload:POST,上传Protobu ...
- Go 泛型发展史与基本介绍
Go 泛型发展史与基本介绍 Go 1.18版本增加了对泛型的支持,泛型也是自 Go 语言开源以来所做的最大改变. 目录 Go 泛型发展史与基本介绍 一.为什么要加入泛型? 二.什么是泛型 三.泛型的来 ...
- ETL之apache/hop-web 2.5安装和简单入门
一.使用Docker 安装部署 1.拉取镜像 推荐使用下面的web版本 docker pull apache/hop:latest docker pull apache/hop-web:latest ...
- TienChin 活动管理-活动列表展示
后端 ActivityVO /** * @author BNTang * @version 1.0 * @description 活动管理VO * @since 2023-23-05 **/ publ ...
- MedicalGPT:基于LLaMA-13B的中英医疗问答模型(LoRA)
MedicalGPT:基于LLaMA-13B的中英医疗问答模型(LoRA).实现包括二次预训练.有监督微调.奖励建模.强化学习训练[LLM:含Ziya-LLaMA]. **** 训练医疗大模型,实现包 ...
- 强化学习从基础到进阶-案例与实践[4.1]:深度Q网络-DQN项目实战CartPole-v0
强化学习从基础到进阶-案例与实践[4.1]:深度Q网络-DQN项目实战CartPole-v0 1.定义算法 相比于Q learning,DQN本质上是为了适应更为复杂的环境,并且经过不断的改良迭代,到 ...
- 1.1 Windows驱动开发:配置驱动开发环境
在进行驱动开发之前,您需要先安装适当的开发环境和工具.首先,您需要安装Windows驱动开发工具包(WDK),这是一组驱动开发所需的工具.库.示例和文档.然后,您需要安装Visual Studio开发 ...
- Flask 框架实现自定义分页
手撸的表格分页: Flask框架下的分页,我研究了很久,自带的分页方法不稳定,还不如自己手撸的好使. <!--name:ndex.html--> <!DOCTYPE html> ...
- C/C++ 操作注册表与服务
枚举注册表启动项: 通过添加注册表启动项,可以很方便地完成自启动,常用的启动位置有CurrentVersion,BootExecute,Active Setup. #include <stdio ...
- php获取服务器操作系统等信息
php获取服务器操作系统等信息 获取请求页面时通信协议的名称和版本: $_SERVER['SERVER_PROTOCOL'] 例如,"HTTP/1.0". PHP程式版本:< ...