代码拉取完成,页面将自动刷新
使用canal
监听MySQL
数据变化并记录,同时实现数据对比和日志输出。
同步变化数据
https://github.com/alibaba/canal/wiki/QuickStart
# 配置
[mysqld]
# 配置 ServerID
server_id=1
# 开启 binlog
log-bin=binlog
# 选择 ROW 模式
binlog-format=ROW
# 查询
show variables like '%log_bin%'
# 授权
CREATE USER canal IDENTIFIED BY 'canal';
GRANT SELECT, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'canal'@'%';
# 如果权限问题登陆不了使用下面授权语句
-- GRANT ALL PRIVILEGES ON *.* TO 'canal'@'%';
FLUSH PRIVILEGES;
# 配置数据连接(instance.properties):example -> muses
canal.instance.mysql.slaveId=2
canal.instance.master.address=127.0.0.1:3306
canal.instance.dbUsername=canal
canal.instance.dbPassword=canal
# 过滤表名
canal.instance.filter.regex=muses\\.t_.*
canal.mq.topic=log-topic
# 配置Kafka(instance.properties)
canal.serverMode=kafka
canal.destinations=muses
kafka.bootstrap.servers=127.0.0.1:9092
传输变化数据
# 创建Topic
kafka-topics.sh --zookeeper zookeeper:2181 --topic topic-log --create --partitions 3 --replication-factor 3
# 配置Kafka
spring:
cloud:
stream:
binders:
log:
type: kafka
default-binder: log
function:
definition: logRecord
bindings:
logRecord-in-0:
group: ${spring.application.name}
binder: log
destination: ${system.topic.log:topic-log}
# content-type: text/plain
记录变化数据
差异模板输出
默认使用insert.ftl
/update.ftl
/delete.ftl
,如果数据库表需要使用自定义模板需要在表名目录下面新增相应模板文件即可。
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。