Mysql Binlog + Debezium + Kafka链路打通(standalone模式)

测试Debezium利用mysql的二进制日志打入Kafka这套链路过程
环境:

  • zookeeper集群(已有)
  • kafka集群(已有)
  • CentOS 7
  • mysql (已有)
    准备软件:
  • confluent community 5.5

start

  1. 开启zookeeper集群
  2. 开启kafka集群
  3. mysql 要开启binlog,且mysql里面新建一个库

  1. 找个目录解压confluent
tar -zxvf confluent-community-5.5.0-2.12.tar.gz 
  1. 添加环境变量
vim /etc/profile
export CONFLUENT_HOME=/confluent-5.5.0
export PATH=$PATH:$CONFLUENT_HOME/bin
source /etc/profile
  1. 这里主要用到kafka connect,修改一下kafka connect的配置文件
cd confluent-5.5.0
vim etc/kafka/connect-standalone.properties 

内容大致如下:
在这里插入图片描述
7. 下载debezium的mysql插件
将下载的debezium的插件放在上图中第二个黄框指定的位置(这个位置可以自己找个文件目录就可以了)
8. 添加一个mysql的properties,内容大致如下:
在这里插入图片描述
然后进入mysql数据库创建一个库叫做mytest,对应的是代码行中的database.dbnamevalue
9. 启动kafka的connect
到了这一步,只修改了confluent的两个文件:

  • connect-standalone.properties
  • mysql.properties
    确保mysql里面有一个叫做mytest的库,并且确保mysql是开启了binlog
    然后回到上层的目录confluent-5.5.0下面,用如下的命令启动
bin/connect-standalone etc/kafka/connect-standalone.properties etc/kafka/mysql.properties 

看到这个之后
在这里插入图片描述

如果没有其他的问题的话就说明启动成功了。
这个时候进行如下的测试:
10. 检查kafka的topic
11. 在mysql中创建一张表
12. 用kafka的kafka-console-consumer.sh消费产生的主题,看看是否能够捕获cdc的数据
13. 需要测试mysql的curd。看看能否在kafka的消费者的控制台中打印出数据

总结

本文写得有点仓促,按步骤来的话确实可以实现mysql的binlog通过Debezium组件写入消息到kafka。如果有什么更好的意见和建议,希望大佬在指点一下,谢谢!

在这里插入图片描述

Logo

更多推荐