Debezium 3.4的安装部署,其核心是作为插件集成到Apache Kafka Connect框架中来工作。根据环境,可以选择不同的部署方式。
下面的表格汇总了三种主流部署方式:

📦 基于Kafka Connect手动安装(核心步骤)
这是最经典的部署方式,主要包括安装Kafka生态、配置Connect以及注册Debezium连接器。
1. 环境准备
Java环境:确保已安装JDK 17或更高版本。
Kafka环境:需要运行Kafka Broker和Kafka Connect服务。可以从Apache官网下载并安装。
2. 安装Debezium连接器插件
从Debezium官网下载对应数据库(如MySQL、PostgreSQL)的连接器插件包(通常是
.zip或.tar.gz格式)。
创建kafka插件目录:mkdir -p /home/phoenix/apps/kafka_2.13-3.9.1/plugins
下载连接器到plugins目录下
下面链接中包含多种数据库的连接器:
https://debezium.io/documentation/reference/3.4/install.html
-- mariadb
wget https://repo1.maven.org/maven2/io/debezium/debezium-connector-mariadb/3.4.0.Final/debezium-connector-mariadb-3.4.0.Final-plugin.tar.gz
-- mysql
wget https://repo1.maven.org/maven2/io/debezium/debezium-connector-mysql/3.4.0.Final/debezium-connector-mysql-3.4.0.Final-plugin.tar.gz
-- postgresql
wget https://repo1.maven.org/maven2/io/debezium/debezium-connector-postgres/3.4.0.Final/debezium-connector-postgres-3.4.0.Final-plugin.tar.gz
-- mongodb
wget https://repo1.maven.org/maven2/io/debezium/debezium-connector-mongodb/3.4.0.Final/debezium-connector-mongodb-3.4.0.Final-plugin.tar.gz
-- jdbc sink
wget https://repo1.maven.org/maven2/io/debezium/debezium-connector-jdbc/3.4.0.Final/debezium-connector-jdbc-3.4.0.Final-plugin.tar.gz将插件包解压到Kafka Connect的插件路径(
plugin.path)下。例如,目录 /home/phoenix/apps/kafka_2.13-3.9.1/plugins,并在connect-distributed.properties配置文件中设置 plugin.path,各个插件都有各自的子目录,配置时只需要配置根目录 /home/phoenix/apps/kafka_2.13-3.9.1/plugins即可。
修改kafka connect配置文件:
vim /home/phoenix/apps/kafka_2.13-3.9.1/config/connect-distributed.properties
# 修改 plugin.path,直接写根目录,connect会自动扫描子目录
plugin.path=/home/phoenix/apps/kafka_2.13-3.9.1/plugins确保插件目录的权限允许Kafka Connect进程读取。
3. 配置并启动Kafka Connect
以分布式模式启动Kafka Connect服务,分别在各个connect节点执行下面命令:
/home/phoenix/apps/kafka_2.13-3.9.1/bin/connect-distributed.sh /home/phoenix/apps/kafka_2.13-3.9.1/config/connect-distributed.properties
或者:
sudo systemctl start kafkaconnect.service查看connect
# 查看connect基本信息
curl -s http://192.168.1.211:8083
# 查看插件:
curl -s http://192.168.1.211:8083/connector-plugins
# 列出 connectors:
curl -s http://192.168.1.211:8083/connectors
4. 注册Debezium连接器
通过Kafka Connect的REST API提交一个JSON配置来注册连接器。以下是一个MySQL连接器的配置示例,你需要替换其中的连接信息:
{
"name": "mysql-connector-test",
"config": {
"connector.class": "io.debezium.connector.mysql.MySqlConnector",
"database.hostname": "192.168.1.183",
"database.port": 3306,
"database.user": "debezium",
"database.password": "654321",
"database.server.id": 184055,
"database.server.name": "myqlserver184055",
"database.include.list": "finance",
"schema.history.internal.kafka.bootstrap.servers": "192.168.1.211:9092,192.168.1.212:9092,192.168.1.213:9092",
"schema.history.internal.kafka.topic": "mysql-connector-test-finance",
"snapshot.mode": "initial",
"topic.prefix": "mysql-connector-test"
}
}创建topic:
/home/phoenix/apps/kafka_2.13-3.9.1/bin/kafka-topics.sh --create --bootstrap-server 192.168.1.211:9092 \
--topic mysql-connector-test-finance \
--partitions 1 --replication-factor 3 \
--config cleanup.policy=compact使用curl命令注册:
-- 注册connector
curl -X POST -H "Content-Type: application/json" \
--data @/home/phoenix/apps/kafka_2.13-3.9.1/debezium/mysql-connector-test.json \
http://192.168.1.211:8083/connectors
-- 更新配置
curl -X PUT -H "Content-Type: application/json" \
--data @/home/phoenix/apps/kafka_2.13-3.9.1/debezium/mysql-connector-test.json \
http://192.168.1.211:8083/connectors/mysql-connector-test/config
-- 删除connector
curl -X DELETE http://192.168.1.211:8083/connectors/mysql-connector-test5. 验证部署
检查连接器状态:curl http://192.168.1.211:8083/connectors/mysql-connector-test/status
查看Kafka中是否生成了对应的主题:kafka-topics.sh --list --bootstrap-server 192.168.1.211:9092
消费主题消息,确认能捕获到数据变更事件。
⚙️ 关键配置与注意事项
数据库配置:必须在源数据库启用CDC功能。例如,MySQL需开启
binlog;PostgreSQL需设置wal_level = logical并创建发布(Publication)。连接器配置:重点关注
database.server.name(主题名前缀)、database.history.kafka.topic(模式历史存储位置)以及快照模式snapshot.mode。主题规划:Debezium会创建多个Kafka主题。对于数据库模式历史主题,建议设置为单分区、多副本、长期保留,以确保数据一致性。
评论