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

Quarkus升级后无法访问KafkaConsumer类,咨询其迁移位置

Quarkus 3.2.10.Final中Vert.x KafkaConsumer的迁移问题

问题背景

将运行于2.14.3.Final版本的Quarkus应用升级至3.2.10.Final版本后,原代码中手动实例化Vert.x KafkaConsumer时出现类无法访问的错误:

原实例化代码:

io.vertx.kafka.client.consumer.KafkaConsumer.create<String, String>(
        vertx,
        mapOf(
          ConsumerConfig.BOOTSTRAP_SERVERS_CONFIG to kafkaServers,
          ConsumerConfig.GROUP_ID_CONFIG to "test_group",
          ConsumerConfig.AUTO_OFFSET_RESET_CONFIG to "earliest",
          ConsumerConfig.ENABLE_AUTO_COMMIT_CONFIG to false.toString(),
          AbstractKafkaSchemaSerDeConfig.AUTO_REGISTER_SCHEMAS to true.toString(),
          AbstractKafkaSchemaSerDeConfig.SCHEMA_REFLECTION_CONFIG to false.toString(),
          AbstractKafkaSchemaSerDeConfig.SCHEMA_REGISTRY_URL_CONFIG to schemaRegistryUrl,
          AbstractKafkaSchemaSerDeConfig.VALUE_SUBJECT_NAME_STRATEGY to TopicNameStrategy::class.java.canonicalName,
          ConsumerConfig.KEY_DESERIALIZER_CLASS_CONFIG to StringDeserializer::class.java.canonicalName,
          ConsumerConfig.VALUE_DESERIALIZER_CLASS_CONFIG to KafkaAvroDeserializer::class.java.canonicalName,
          KafkaAvroDeserializerConfig.SPECIFIC_AVRO_READER_CONFIG to true.toString(),
        )
      )

报错信息:

Cannot access class 'io.vertx.kafka.client.consumer.KafkaConsumer'. Check your module classpath for missing or conflicting dependencies

同时发现部分序列化类(如io.vertx.kafka.client.serialization.JsonObjectDeserializer)已迁移至io.quarkus.kafka.client.serialization.JsonObjectDeserializer,咨询KafkaConsumer的迁移位置。

解决方案

  • Vert.x KafkaConsumer并未迁移包路径:io.vertx.kafka.client.consumer.KafkaConsumer仍保留在原Vert.x包中,类路径未发生变化。
  • 依赖引入方式调整:Quarkus 3.x升级了Vert.x版本,且要求通过官方扩展引入Vert.x Kafka相关依赖,需确保项目中引入quarkus-vertx-kafka扩展,而非直接引入Vert.x原生的kafka客户端依赖。
    • Maven依赖示例:
      <dependency>
          <groupId>io.quarkus</groupId>
          <artifactId>quarkus-vertx-kafka</artifactId>
      </dependency>
      
    • Gradle依赖示例:
      implementation 'io.quarkus:quarkus-vertx-kafka'
      
  • 推荐使用Quarkus原生Kafka集成:Quarkus 3.x更推荐基于SmallRye Reactive Messaging的原生Kafka消费方式,通过@Incoming注解即可实现消息消费,无需手动实例化KafkaConsumer,这种方式能更好地适配Quarkus的原生特性(如原生镜像构建、依赖注入等)。
  • 类路径冲突排查:若引入扩展后仍报错,需检查项目中是否存在旧版Vert.x Kafka依赖或其他冲突依赖,可通过依赖分析工具(如Maven的dependency:tree)排查并排除冲突依赖。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 08:07:40