mysql+canal+kafka单机实时获取mysql变化的数据

最近项目里预研这方面,自己也搜了下网上的资料,有些资料写的不是很清楚,自己摸索成功后,特地整理了一下部署文档,以免大家多走弯路

mysql+canal+kafka均采用单机部署,版本号如下
版本号
配置步骤如下:

1、mysql开启binlog日志

修改配置文件/etc/my.cnf
#添加的部分,server-id随便写
server-id = 12345
log-bin = mysql-bin
binlog_format = ROW
#必须为FULL,MySQL-5.7后才有该参数
binlog_row_image = FULL
expire_logs_days = 10

修改保存后,重启mysql,命令为service mysqld restart

2、zookeeper启动和配置

这里不多说,注意的是要复制配置文件zoo_sample.cfg到zoo.cfg,在bin目录下
#启动
zkServer.sh start
#查看状态
zkServer.sh status
#停止
zkServer.sh stop
**

3、kafka配置

**
解压tar文件,在解压后的目录下,
vim config/server.properties
#改为当前kafka地址
listeners=PLAINTEXT://192.168.62.32:9092
advertised.listeners=PLAINTEXT://192.168.62.32:9092
#改为zookeeper实际地址
zookeeper.connect=192.168.62.24:2181
保存,启动
nohup bin/kafka-server-start.sh config/server.properties &
创建用于监控mysql数据变化的主题,主题名为canal-test
./bin/kafka-run-class.sh kafka.admin.TopicCommand --create --zookeeper 192.168.62.24:2181 --replication-factor 1 --partitions 1 --topic canal-test

4、cannal配置

解压后,有conf和bin等文件夹
在加压后的目录下,
(1) vim conf/canal.properties
#tcp, kafka, RocketMQ,选择接收数据变化的插件类型
canal.serverMode = kafka
#修改为kafka地址
canal.mq.servers = 192.168.62.32:9092
去掉canal.instance.parser.parallelThreadSize = 16这个配置项的注释,也就是启用此配置项,和实例解析器的线程数相关,不配置会表现为阻塞或者不进行解析

(2) vim conf/example/instance.properties
#mysql地址
canal.instance.master.address=192.168.62.32:3306
#mysql登录用户名和密码
canal.instance.dbUsername=root
canal.instance.dbPassword=123456
#监控变化的表,如果为
canal.instance.filter.regex=test.role
#监控的kafka主题名
canal.mq.topic=canal-test
保存后,启动canal,
在bin目录下
#启动
./startup.sh
#停止
./stop.sh

对表test.role的数据进行增删改操作,
同时,在kafka目录下,执行查看主题消费的命令
./bin/kafka-console-consumer.sh --bootstrap-server 192.168.62.32:9092 --from-beginning --topic canal-test
可查看到变化的数据,包括增删改三种情况,type表示数据变化的类型,table表示监控的表名
在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值