Debezium连接Kafka和mysql(linux版)

环境:
1.打开mysql配置(my.cnf)
2.修改配置
3.修改kafka配置(connect-distributed.properties)
4.启动mysql、kafka、打开Kafka-connector
5.检查是否相关组件是否启动有无报错
6.注册连接器至kafka-connector
7.打开kafka监控器(我使用的是offset explorer)或者打开consumer进行测试

环境:

kafka-3.0.0,mysql-8,Debezium-1.5.4

1.打开mysql配置(my.cnf)

vim /etc/my.cnf

一般这个就是数据库的配置文件在安装数据库的时候自动生成,所以直接命令打开

2.修改配置

#sql唯一id(任意设置但是不能与后面配置相同)
server-id= 1
#生成二进制日志文件前缀
log-bin=mysql-bin
#二进制文件记录什么?row=记录变化的数据statement=语句还有一个是记录全部
binlog_format=row

查看是否开启二进制文件

mysql -u 指定用户名 -p密码 -e "show variables like '%log_bin%'"

3.修改kafka配置(connect-distributed.properties)

bootstrap.servers=.....
# 保持默认转换器即可
key.converter=org.apache.kafka.connect.json.JsonConverter
value.converter=org.apache.kafka.connect.json.JsonConverter

key.converter.schemas.enable=false
value.converter.schemas.enable=false

plugin.path=/home/pollux/Mysoftware/debezium

首先第一个是配置kafka运行地址

第二个的key和value是配置文件没有的需要添加

第三个key和value是决定是否添加schemas类型的数据(一般默认否因为会导致看起来数据更复杂除非你有特别需求)

最后一个是配置是让kafka知道debezium在哪一个位置

4.启动mysql、kafka、打开Kafka-connector

前面两个就不多说了最后一个是使用bin中的connect-distributed.sh和connect-distributed.properties进行启动连接

5.检查是否相关组件是否启动有无报错

jps-检查kafka和连接器是否启动
service mysqld status-检查mysql运行状况
curl -H "Accept:application/json"192.168.1.200:8083/connectors/ 检查连接器注册情况
curl -H "Accept:application/json"192.168.1.200:8083/ 检查连接器是否启动

6.注册连接器至kafka-connector

{
"name": "connector-test", 连接器名字
"config": {
"connector.class": "io.debezium.connector.mysql.MySqlConnector", 照抄即可
"database.hostname": "127.0.0.1", 数据库ip
"database.port": "3306", 数据库端口
"database.user": "root", 那个用户登录(尽量root不然需要其他配置)
"database.password": "rootLsk123.",数据库密码
"database.server.id": "10086", 用于指定数据库服务器的唯一标识符。
"database.allowPublicKeyRetrieval":"true", (公钥是否使用配置)
"database.server.name": "bigdata", 在kafka中生成topic的前缀
"database.include.list": "debezium", 监控数据库列表逗号分隔(现在就是监控debezium库)
"database.history.kafka.bootstrap.servers": "127.0.0.1:9092", kafka运行地址
"database.history.kafka.topic": "schema-changes.inventory" 用于指定一个 Kafka 主题, 用于存储数据库变更历史信息。
}
}

#使用curl命令进行连接器注册
curl -i -X POST -H "Accept:application/json" -H "Content-Type:application/json" 127.0.0.1:8083/connectors/ -d '{"name":"connector-Mysql","config":{"connector.class":"io.debezium.connector.mysql.MySqlConnector","database.hostname":"127.0.0.1","database.port":"3306","database.user":"root","database.password":"rootLsk123.","database.server.id":"10086","database.allowPublicKeyRetrieval":"true","database.server.name":"debezium","database.include.list":"debezium","database.history.kafka.bootstrap.servers":"127.0.0.1:9092","database.history.kafka.topic":"schema-changes.inventory"}}'

7.打开kafka监控器(我使用的是offset explorer)或者打开consumer进行测试

注册成功后可以查看kafka的主题看是否生成,对数据库进行curd操作可以在offset explorer中查看对应的信息如图二。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值