Mysql Binlog + Debezium + Kafka链路打通(standalone模式)
测试Debezium利用mysql的二进制日志打入Kafka这套链路过程
环境:
- zookeeper集群(已有)
- kafka集群(已有)
- CentOS 7
- mysql (已有)
准备软件: - confluent community 5.5
start
- 开启zookeeper集群
- 开启kafka集群
- mysql 要开启binlog,且mysql里面新建一个库
- 找个目录解压confluent
tar -zxvf confluent-community-5.5.0-2.12.tar.gz
- 添加环境变量
vim /etc/profile
export CONFLUENT_HOME=/confluent-5.5.0
export PATH=$PATH:$CONFLUENT_HOME/bin
source /etc/profile
- 这里主要用到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.dbname
的value
值
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。如果有什么更好的意见和建议,希望大佬在指点一下,谢谢!