2.3. 在 Red Hat Enterprise Linux 中使用 AMQ Streams 部署 Debezium
这个步骤描述了如何在 Red Hat Enterprise Linux 中为 Debezium 设置连接器。连接器使用 Apache Kafka Connect 部署到 AMQ Streams 集群,这是在 Apache Kafka 和外部系统间流传输数据的框架。Kafka Connect 必须以分布式模式运行,而不是独立模式。
先决条件
用于您需要部署 Debezium 的主机环境运行 Red Hat Enterprise Linux、AMQ Streams 和 Java(以一个支持的配置)。
- 有关如何安装 AMQ Streams 的详情,请参考 安装 AMQ Streams。
- 有关如何安装包含单个 ZooKeeper 节点的基本非生产环境 AMQ Streams 集群以及单个 Kafka 节点的详情,请参考 运行单一节点 AMQ Streams 集群。
如果您正在运行早期版本的 AMQ Streams,您必须首先升级到 AMQ Streams 2.5。有关升级过程的详情,请参考 AMQ Streams 和 Kafka 升级。
流程
- 从 Red Hat Integration 下载站点下载 Debezium 连接器或连接器。例如,要将 Debezium 与 MySQL 数据库搭配使用,请下载 Debezium 2.3.4 MySQL Connector。
在部署 AMQ Streams 的 Red Hat Enterprise Linux 主机上,打开终端窗口并在
/opt/kafka
中创建connector-plugins
目录(如果它尚不存在):$ sudo mkdir /opt/kafka/connector-plugins
输入以下命令将您下载到
/opt/kafka/connector-plugins
目录的 Debezium 连接器存档的内容。$ sudo unzip debezium-connector-mysql-2.3.4.Final.zip -d /opt/kafka/connector-plugins
- 对您要安装的每个连接器重复步骤 1 -3。
在一个终端窗口中,以
kafka
用户身份进行登录:$ su - kafka $ Password:
如果正在运行,停止 Kafka Connect 进程。
输入以下命令检查 Kafka Connect 是否在分布式模式下运行:
$ jcmd | grep ConnectDistributed
如果进程正在运行,命令会返回进程 ID,例如:
18514 org.apache.kafka.connect.cli.ConnectDistributed /opt/kafka/config/connect-distributed.properties
使用进程 ID 输入
kill
命令来停止该进程,例如:$ kill 18514
编辑
/opt/kafka/config/
中的connect-distributed.properties
文件,并将plugin.path
的值设置为 Debezium 连接器插件的父目录的位置:plugin.path=/opt/kafka/connector-plugins
以分布式模式启动 Kafka 连接。
$ /opt/kafka/bin/connect-distributed.sh /opt/kafka/config/connect-distributed.properties
在 Kafka Connect 运行后,使用 Kafka Connect API 来注册连接器。
输入curl
命令,以提交POST
请求,将您在 第 2.2 节 “规划 Debezium 连接器配置” 中指定的连接器配置 JSON 发送到localhost:8083/connectors
的 Kafka Connect REST API 端点。
例如:curl -i -X POST -H "Accept:application/json" -H "Content-Type:application/json" localhost:8083/connectors/ \ -d '{"name": "inventory-connector", "config": \ { "connector.class": "io.debezium.connector.mysql.MySqlConnector", \ "tasks.max": "1", \ "database.hostname": "mysql", \ "database.port": "3306", \ "database.user": "debezium", \ "database.password": "dbz", \ "database.server.id": "184054", \ "topic.prefix": "dbserver1", \ "table.include.list": "public.inventory", \ "schema.history.internal.kafka.bootstrap.servers": "kafka:9092", \ "schema.history.internal.kafka.topic": "dbhistory.inventory" } }'
要注册多个连接器,请为每个连接器提交一个单独的请求。
重启 Kafka Connect 来实现您的更改。
当 Kafka Connect 启动时,它会从
connector-plugins
目录中加载配置的 Debezium 连接器。完成配置后,部署的连接器连接到源数据库,并为每个插入、更新或删除的行或文档生成事件。
- 为每个 Kafka Connect worker 节点重复步骤 5-10。
后续步骤
验证部署。
其他资源