debezium-mysql的本地使用与测试并confluent实现avro序列化

debezium-mysql的本地使用与测试并confluent实现avro序列化

目录信息(具体包为官网下载)

zookeeper:/opt/module/apache-zookeeper-3.6.3-bin
kafka    :/opt/module/kafka_2.13-2.7.2
debezium :/opt/module/debezium/connector/debezium-connector-mysql
confluent:/opt/module/confluent-5.5.0

一、安装zookeeper

  1. 下载安装包,解压,修改配置文件

  2. 找到下载的软件包,解压

cd ./apache-zookeeper-3.6.3-bin/conf/
cp zoo_sample.cfg zoo.cfg
vim zoo.cfg
----------------配置文件内容---------------------
# 修改如下内容
dataDir=/opt/module/zookeeper/zkData
dataLogDir=/opt/module/zookeeper/zkLog
  1. 启动 Zookeeper
cd apache-zookeeper-3.6.3-bin/bin/
# 启动zookeeper
./zkServer.sh start
# 查看进程是否启动(是否有QuorumPeerMain的进程)
jps

二、安装kafka

1.解压安装包,解压,修改配置文件

# 创建数据存放目录
mkdir -p /opt/module/kafka_2.13-2.7.2/data
vim ./kafka_2.13-2.7.2/config/server.properties,修改以下内容

#每台kafka都有唯一的brokerid
broker.id=1
#安装kafka的机器ip和提供服务的端口号
listeners=PLAINTEXT://localhost:9092
#kafka的消息存储位置
log.dirs=/opt/module/kafka_2.13-2.7.2/data
zookeeper.connect=localhost:2181
# 文件尾部添加以下内容
delete.topic.enable=true #是否直接删除topic
host.name=localhost  #主机名字

2.启动kafka

cd /kafka_2.13-2.7.2
bin/kafka-server-start.sh -daemon config/server.properties
# 查看进程是否启动(是否有kafka的进程)
jps

三、配置连接器

下载完解压

tar -zxvf debezium-connector-mysql-1.7.1.Final-plugin.tar.gz -C
/opt/module/debezium/connector

四、schema registry(confluent)实现 avro 序列化

1.下载confluent community 5.5并解压,修改confluent中的两处地址

vim confluent-5.5.0/etc/schema-registry/schema-registry.properties

在这里插入图片描述

2.启动 schema registry

bin/schema-registry-start etc/schema-registry/schema-registry.properties

3.启动成功
在这里插入图片描述

#开启新的终端,查看是否有进程SchemaRegistryMain
jps

4.接着修改一下kafka-avro-standalone.properties的配置

vim  confluent-5.5.0/etc/schema-registry/connect-avro-standalone.properties

bootstrap-servers 修改为kafka的broker服务器地址加上端口号:localhost:9092
key.converter.schema.registry.url修改为schema registry服务器所在的地址:localhost:8081
value.converter.schema.registry.url修改为schema registry服务器所在的地址:localhost:8081
plugin.path参数里面的目录里面要确保debezium的mysql 插件存在
例如plugin.path的值中有一个目录叫做/opt/module/debezium/connector ,那么这个目录下面要存在解压好了的debezium-mysql-connector插件.

5.在confluent的一个目录etc/kafka/下创建一个mysql.properties文件,内容如下:

name=cdc-connector
connector.class=io.debezium.connector.mysql.MySqlConnector
database.hostname=localhost
database.port=3306
database.user=root
database.password=1234567
database.server.id=1
database.server.name=mysql_master
database.history.kafka.bootstrap.servers=localhost:9092
database.history.kafka.topic=mysql_master_history
include.schema.changes=true
tasks.max=1
#snapshot.mode=schema_only_recovery                           

6.接下来就是利用connect-standalone启动kafkaconnect插件(confluent-5.5.0目录下)

bin/connect-standalone etc/schema-registry/connect-avro-standalone.properties etc/kafka/mysql.properties 

在这里插入图片描述

7.再开一个新的终端

#开启新的终端,查看是否有进程ConnectStandalone
jps

五、测试环节

1.在confluent-5.5.0的bin目录下执行

#查看是否有mysql_master这个topic
./kafka-topics --list --zookeeper localhost:2181

2.在mysql数据库中创建一个数据库mytest和一张表test,并且在里面插入一条数据

再次查kafkatopic的列表:

可看到名为mysql_master.mytest.test的topic

3.消费一下topic名称为mysql_master.mytest.test的数据

./kafka-avro-console-consumer --bootstrap-server localhost:9092 --topic mysql_master.mytest.test --from-beginning

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HnqDtDpn-1680354247202)(C:\Users\zzl\AppData\Roaming\Typora\typora-user-images\image-20230401205512158.png)]

出现如图类似数据即成功实现了avro序列化。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值