数据库同步工具 Debezium 的部署

2023年5月26日 3451点热度 3人点赞 1条评论
内容纲要

file

file

Debezium 可以监控以下数据的增量变化:
MongoDB
MySQL
PostgreSQL
SQL Server
Oracle
Db2
Cassandra

然后将增量数据同步到 Kafka。
当数据同步到 Kafka 时,我们可以选择自己研发工具读取 Kafka 的数据,然后从 Kafka 中进行数据清洗。
或者使用官方的 Kafka Connect 工具,它支持同步到 ElasticSearch 等地方。

下面来演示如何部署 Debezium。

部署 Kafka

因为 Debezium 需要将增量数据同步到 Kafka 中存储,所以首先要创建 Kafka 实例。
你可以使用 docker-compose 快速部署,参考 https://kafka.whuanle.cn

或者通过 Docker 快速部署一个练习使用。

docker run -itd --name zookeeper -p 2181:2181 -p 2888:2888 -p 3888:3888 quay.io/debezium/zookeeper
docker run -itd --name kafka -p 9092:9092 --link zookeeper:zookeeper quay.io/debezium/kafka

然后可以部署一个 kafdrop 面板查看 kafka。

docker run -dit -p 9000:9000 \
-e JVM_OPTS="-Xms32M -Xmx64M" \
-e KAFKA_BROKERCONNECT=192.168.0.0:9092 \
-e SERVER_SERVLET_CONTEXTPATH="/" \
obsidiandynamics/kafdrop

替换 192.168.0.0:9092 为具体的 IP。

file

部署 Mysql

如果你已经有 Mysql 数据库,这里可以跳过。

docker run -d -itd --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=debezium -e MYSQL_USER=mysqluser -e MYSQL_PASSWORD=mysqlpw debezium/example-mysql

部署 debezium

docker run -itd --name connect -p 8083:8083 -e GROUP_ID=1 -e CONFIG_STORAGE_TOPIC=my_connect_configs -e OFFSET_STORAGE_TOPIC=my_connect_offsets -e STATUS_STORAGE_TOPIC=my_connect_statuses --link kafka:kafka quay.io/debezium/connect:2.3

由于 Docker hub 的源比较旧,笔者建议使用 quay.io/debezium/connect:{version}}
仓库地址 https://quay.io/repository/debezium/connect?tab=tags

然后部署一个管理面板。

docker run -itd --name debezium-ui -p 8080:8080 -e KAFKA_CONNECT_URIS=http://192.168.0.0:8083 debezium/debezium-ui

记得替换 http://192.168.0.0:8083

配置同步

打开 8080 端口。
file
file
file

然后点击 Validate 。如果验证通过,则点击 next 进行下一步。
file
file
需要填写监控的数据库。
file

另外要开启 Kafka 自动创建主题的配置。
file
file

痴者工良

高级程序员劝退师

文章评论

  • 痴者工良

    Debezium connect,如果需要持久化,可以使用 -v /data/debeziumdata:/kafka/config

    2023年7月12日