一、安装相应组件
kafka安装教程: kafka安装和使用的入门教程_kafka下载安装教程-CSDN博客
canal下载地址:
Releases · alibaba/canal · GitHubReleases · alibaba/canal · GitHub
Releases · alibaba/canal · GitHub
下载指定版本
二、canal配置
canal.properties:
这里展示需要修改的配置:
这个主要切换canal模式,一种是tcp,这里使用kafka
这个是自己的kafka队列的配置(主要是地址和topic主题)
instance.properties:
这里主要是配置数据库连接信息
三、mysql配置以及各个组件启动
1、mysql配置:
打开mysql配置文件,配置如下信息,并重启
log-bin=mysql-bin # 开启 binlog
binlog-format=ROW # 选择 ROW 模式
server_id=1 # 配置 MySQL replaction 需要定义,不要和 canal 的 slaveId 重
查看是否开启,如下指令,
SHOW VARIABLES LIKE 'log_bin';
上述ON表示已开启
2.启动kafka:
先启动zookeeper:
再启动kafka:
3.启动canal:
四:代码实现
首先配置yaml文件:
spring: kafka: #kafka配置 bootstrap-servers: 8.134.64.89:9092 producer: #生产者 retries: 3 #设置大于0的值,则客户端会将发送失败的记录重新发送的次数 # 每次批量发送消息的数量 batch-size: 16384 buffer-memory: 33554432 # 指定消息key和消息体的编解码方式 key-serializer: org.apache.kafka.common.serialization.StringSerializer value-serializer: org.apache.kafka.common.serialization.StringSerializer acks: 1 consumer: # 指定默认消费者group id group-id: test-consumer-group auto-offset-reset: earliest enable-auto-commit: false auto-commit-interval: 5000 # 指定消息key和消息体的编解码方式 key-deserializer: org.apache.kafka.common.serialization.StringDeserializer value-deserializer: org.apache.kafka.common.serialization.StringDeserializer #自己定义的主题名称,在微服务中使用Value注解注入调用,如果kafka中没有该主题,则会自动创建 #自己定义的主题名称,在微服务中使用Value注解注入调用,如果kafka中没有该主题,则会自动创建 listener: ack-mode: manual_immediate
创建消费端接收主题信息:
五、开始测试
数据库随便操作一条信息:
日志打印出了bin-log信息,成功
如下有基本的操作信息