You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Debezium MySQL Avro Worker容器启动失败:找不到AvroConverter类

解决Debezium Connect启动时找不到io.confluent.connect.avro.AvroConverter的问题

这个报错的核心原因是:Debezium官方的connect镜像(quay.io/debezium/connect:2.0)默认不包含Confluent提供的Avro Converter依赖,io.confluent.connect.avro.AvroConverter类属于Confluent的kafka-connect-avro-converter组件,需要额外添加。下面是几种可行的解决办法:

方法一:使用Debezium预构建的含Confluent组件的镜像

Debezium官方提供了集成Confluent Avro相关依赖的镜像,直接替换原有镜像即可:

  1. 打开docker-compose-mysql-avro-worker.yaml文件
  2. 找到connect服务的image配置行,将quay.io/debezium/connect:${DEBEZIUM_VERSION}修改为quay.io/debezium/connect:${DEBEZIUM_VERSION}-confluent
  3. 重新执行启动命令:
    docker-compose -f docker-compose-mysql-avro-worker.yaml up
    

方法二:自定义构建包含Confluent依赖的镜像

如果需要自定义镜像内容,可以自己构建镜像并添加Confluent的Avro转换器:

  1. 创建名为Dockerfile的文件,内容如下:
    FROM quay.io/debezium/connect:2.0
    
    ENV CONFLUENT_VERSION=7.3.0
    
    RUN confluent-hub install --no-prompt confluentinc/kafka-connect-avro-converter:${CONFLUENT_VERSION}
    
  2. 构建自定义镜像:
    docker build -t my-debezium-connect-avro:2.0 .
    
  3. 修改docker-compose-mysql-avro-worker.yaml中connect服务的image为你构建的自定义镜像,再重新启动容器。

方法三:改用Debezium自带的Avro转换器(可选)

如果不需要Confluent的Avro格式,可以替换为Debezium原生的ByteBufferConverter,它也支持Avro序列化:
在docker-compose的connect服务环境变量中修改配置:

CONNECT_KEY_CONVERTER: io.debezium.converters.ByteBufferConverter
CONNECT_VALUE_CONVERTER: io.debezium.converters.ByteBufferConverter

注意:使用这个转换器时,需要调整相关的schema配置,确保和组件兼容。

验证方法

容器启动后,通过以下方式确认问题解决:

  • 查看容器日志,确认没有ConfigException报错
  • 调用Connect的REST API检查插件:
    curl http://localhost:8083/connector-plugins
    
    输出中应包含你使用的转换器类。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 16:10:29