使用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. ...
随机推荐
- 你不知道的Promise状态变化机制
1.Promise中PromiseStatus的三种状态 var p = new Promise((resolve, reject) => { // resolve 既是函数也是参数,它用于处理 ...
- vscode搜索框不见了如何显示
- PE格式:新建节并插入代码
经过了前一章的学习相信你已经能够独立完成FOA与VA之间的互转了,接下来我们将实现在程序中插入新节区,并向新节区内插入一段能够反向连接的ShellCode代码,并保证插入后门的程序依旧能够正常运行不被 ...
- ubuntu16.04编译安装nginx1.24.0
环境: Distributor ID: Ubuntu Description: Ubuntu 16.04.7 LTS Release: 16.04 Codename: xenial 安装包: pcre ...
- vue-cli3创建多页面应用
首先用vue-cli3创建工程,我的全局安装了vue-cli2,又不想卸载掉:所以新建了一个文件夹安装vue-cli3:然后在该文件夹下创建工程: 同时安装vue-cli2和vue-cli3参考:ht ...
- SpringBoot + LiteFlow:轻松应对复杂业务逻辑,简直不要太香!
LiteFlow简介 LiteFlow是什么? LiteFlow是一款专注于逻辑驱动流程编排的轻量级框架,它以组件化方式快速构建和执行业务流程,有效解耦复杂业务逻辑.通过支持热加载规则配置,开发者能够 ...
- 阿里巴巴 ali1688 Date +0800的问题
package com.example.testredis.controller; import java.text.DateFormat; import java.text.ParseExcepti ...
- 用set做一轮无重复纯随机
前端时间面腾讯的时候,一位老师问了一个相当有趣的问题:假设存在一个音乐播放器,里面有一个100首歌的歌单.现在需要做一个随机播放功能,要求不重复的随机播放完一百首歌.当时脑子短路了没想出来,几天突然意 ...
- 【React】排查两小时,修改一个词,记一个因代码书写不规范导致的生命周期BUG
壹 ❀ 引 因为现在工作主要以修bug为主,日常工作中总是会接触到千奇百怪的前端问题,它可能是代码缺陷导致的程序错误,也可能是方案不合理造成的性能问题,老实说修bug是一件很枯燥的事情,你需要阅读大量 ...
- Js的GC机制
Js的GC机制 在Js七种基本类型中的引用类型Object的变量其占据内存空间大且大小不固定,在堆内存中实际存储对象,在栈内存中存储对象的指针,对于对象的访问是按引用访问的.在栈区中执行的变量等是通过 ...