You need to enable JavaScript to run this app. 如何为MySQL数据库创建多个Debezium连接器并解决启动报错
优惠活动
大模型
产品
解决方案
定价
更多

如何为MySQL数据库创建多个Debezium连接器并解决启动报错

Debezium多连接器部署报错解决方法

报错核心原因

你启动第二个connect容器时的端口映射配置错误:debezium/connect镜像默认内部服务端口为8083,你错误将宿主机8084端口映射到了容器的8084端口,容器内没有服务监听8084端口,导致容器启动后立刻退出,触发context canceled报错。

具体修复方案

    1. 先清理已创建的异常容器
      先停止删除之前启动失败的connect、connect1容器,避免名称、端口占用冲突:
sudo docker stop connect connect1
sudo docker rm connect connect1
    1. 修正connect容器的启动参数
      两点核心调整:
    • 端口映射规则为「宿主机端口:容器内部服务端口」,容器内部固定用默认的8083端口,无需修改
    • 后台运行无需加-it &,直接用-d参数即可,避免交互模式后台运行无终端导致进程异常退出

修正后的完整启动命令如下:

# 启动zookeeper
sudo docker run -d --name zookeeper -p 2181:2181 -p 2888:2888 -p 3888:3888 debezium/zookeeper:1.5

# 启动kafka,等待zookeeper完全启动后再执行(建议间隔10秒)
sudo docker run -d --name kafka -p 9092:9092 --link zookeeper:zookeeper debezium/kafka:1.5

# 启动第一个connect节点,等待kafka完全启动后再执行(建议间隔15秒)
sudo docker run -d --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

# 启动第二个connect节点,端口映射修改为8084:8083
sudo docker run -d --name connect1 -p 8084: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
    1. 验证集群状态
      两个connect节点启动完成后,访问任意节点的接口即可看到集群运行状态:
# 查看当前集群已部署的连接器列表
curl http://localhost:8083/connectors
# 第二个节点接口访问效果完全一致
curl http://localhost:8084/connectors

多MySQL连接器配置说明

两个connect节点属于同一个Kafka Connect集群,你只需要向任意一个节点的接口提交MySQL连接器配置即可,集群会自动分配任务到空闲节点运行,支持同时提交多个不同MySQL实例的连接器配置。

内容的提问来源于stack exchange,提问作者Steave Jones

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.17 02:15:04