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

如何在Strimzi部署的Kafka Connect中使用Apicurio AvroConverter

解决Apicurio Registry AvroConverter在Kafka Connect中类缺失问题

正确的依赖清单

你需要确保引入版本完全一致的以下Apicurio依赖包(版本需与你的Apicurio Registry服务版本匹配):

  • apicurio-registry-utils-converter:核心Kafka Connect Converter实现
  • apicurio-registry-serdes-avro:包含io.apicurio.registry.serde.avro.AvroKafkaSerializer等Avro序列化/反序列化核心类(你之前用的apicurio-registry-serdes-avro-serde是旧版本命名,已废弃)
  • apicurio-registry-rest-client:Converter与Apicurio Registry服务通信的客户端依赖

Maven坐标示例

如果用Maven管理依赖,添加以下配置:

<dependency>
    <groupId>io.apicurio</groupId>
    <artifactId>apicurio-registry-utils-converter</artifactId>
    <version>2.5.5.Final</version> <!-- 替换为你的Apicurio版本 -->
</dependency>
<dependency>
    <groupId>io.apicurio</groupId>
    <artifactId>apicurio-registry-serdes-avro</artifactId>
    <version>2.5.5.Final</version>
</dependency>
<dependency>
    <groupId>io.apicurio</groupId>
    <artifactId>apicurio-registry-rest-client</artifactId>
    <version>2.5.5.Final</version>
</dependency>

Docker镜像构建建议(基于Strimzi Kafka Connect)

若你是通过Dockerfile自定义Kafka Connect镜像,需将所有依赖JAR(包括传递依赖)复制到Connect插件目录(如/opt/kafka/plugins/apicurio-converter)。推荐用Maven的dependency:copy命令批量导出所有依赖,避免手动下载遗漏:

# 在本地项目执行,导出所有依赖到target/apicurio-libs目录
mvn dependency:copy -DoutputDirectory=target/apicurio-libs -Dartifact=io.apicurio:apicurio-registry-utils-converter:2.5.5.Final,io.apicurio:apicurio-registry-serdes-avro:2.5.5.Final,io.apicurio:apicurio-registry-rest-client:2.5.5.Final -Dtransitive=true

然后在Dockerfile中复制:

FROM quay.io/strimzi/kafka:0.38.0-kafka-3.5.1

# 创建插件目录
RUN mkdir -p /opt/kafka/plugins/apicurio-converter

# 复制本地导出的依赖JAR
COPY target/apicurio-libs/*.jar /opt/kafka/plugins/apicurio-converter/

连接器配置要点

确保JDBC Sink Connector的配置中正确指定Converter及Registry地址:

value.converter=io.apicurio.registry.utils.converter.AvroConverter
value.converter.apicurio.registry.url=http://<apicurio-registry-host>:<port>/apis/registry/v2
value.converter.apicurio.registry.auto-register=true
# 可选:配置Schema兼容性规则
value.converter.apicurio.registry.compatibility=BACKWARD

关键注意事项

  • 版本一致性:所有Apicurio依赖包的版本必须与你的Apicurio Registry服务版本完全一致,否则会出现类不兼容或找不到的问题。
  • 避免混合依赖:不要同时引入Confluent的Avro相关依赖,防止类加载冲突。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 04:08:22