如何为 mysql 数据库创建多个 Debezium 连接器
Posted
技术标签:
【中文标题】如何为 mysql 数据库创建多个 Debezium 连接器【英文标题】:How to create multiple Debezium connectores for mysql database 【发布时间】:2021-08-24 03:54:24 【问题描述】:我正在尝试为一个mysql数据库连接多个Debezium连接器,我的配置如下。
sudo docker run -it --name zookeeper -p 2181:2181 -p 2888:2888 -p 3888:3888 debezium/zookeeper:1.5 &
sudo docker run -it --name kafka -p 9092:9092 --link zookeeper:zookeeper debezium/kafka:1.5 &
sudo docker run -it --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 zookeeper:zookeeper --link kafka:kafka debezium/connect:1.5 &
sudo docker run -it --name connect1 -p 8084:8084 -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 zookeeper:zookeeper --link kafka:kafka debezium/connect:1.5 &
但是当我尝试运行第二个连接器时...发生以下错误。
ERRO[0000] error waiting for container: context canceled
谁能帮帮我。
【问题讨论】:
请根据互联网分享更多日志,错误消息只是症状/最后一句话,您应该事先有更明确的错误消息 您尝试过更改 GROUP_ID 吗? kafka-connect 的标准端口也是 8083,所以用这条线更改第二个 kafka-connectsudo docker run -it --name connect1 -p 8084:8083 -e GROUP_ID=2 -e CONFIG_STORAGE_TOPIC=my_connect_configs -e OFFSET_STORAGE_TOPIC=my_connect_offsets -e STATUS_STORAGE_TOPIC=my_connect_statuses --link zookeeper:zookeeper --link kafka:kafka debezium/connect:1.5 &
【参考方案1】:
您没有运行任何连接器,只有工作人员的容器。
一个 Kafka Connect 工作器可用于通过 HTTP 服务器在端口 8083 上提交多个连接器任务
关于显示的命令,您不需要多个容器,除非您尝试创建 Connect 工作集群
为此,他们需要相同的主题和相同的组 ID。
您还需要-p 8084:8083
,因为您没有更改服务器端口。此外,您可以使用docker run -d
,而不是使用&
,但在这里使用Docker Compose 会更有意义
【讨论】:
首先,非常感谢您回答我的问题...尝试为一张表创建一个连接器任务...我尝试过...它有效,但是当我尝试使用相同的用不同的表配置...它不会工作.. @SteaveJones 请在问题中分享您的连接器配置。 @SteaveJones 我不知道你的 mysql 容器在哪里运行,所以 1) 默认情况下,Docker 无法访问主机进程。如果它在另一个容器中,您还需要--link
mysql 容器 2)您没有显示您的连接器配置或来自容器的任何日志,以便我们真正回答某个连接器的具体问题以上是关于如何为 mysql 数据库创建多个 Debezium 连接器的主要内容,如果未能解决你的问题,请参考以下文章
如何为多个数据源创建/配置 Spring Actuator?