spring-boot - 跟踪KafkaClientSupplier错误 "Implementations of KafkaClientSupplier should implement the getAdmin() method"

标签 spring-boot spring-cloud-stream spring-cloud-sleuth zipkin spring-cloud-stream-binder-kafka

我正在将 Spring Boot 应用程序升级到 Boot 2.6.1、Cloud 2021.0.0 和 Cloud Stream 3.2.1。

该应用程序有一堆 KStream,例如:

    @Bean
    fun processEvent() =
        Function<KStream<ID, EventReceived>, KStream<Id, UpdatedInfo?>> { events ->
            ...
        }

现在应用程序在启动时崩溃:

Caused by: org.springframework.kafka.KafkaException: Could not start stream: ; nested exception is java.lang.UnsupportedOperationException: Implementations of KafkaClientSupplier should implement the getAdmin() method.
    at org.springframework.kafka.config.StreamsBuilderFactoryBean.start(StreamsBuilderFactoryBean.java:359)
    at org.springframework.cloud.stream.binder.kafka.streams.StreamsBuilderFactoryManager.start(StreamsBuilderFactoryManager.java:107)
    ... 15 common frames omitted
Caused by: java.lang.UnsupportedOperationException: Implementations of KafkaClientSupplier should implement the getAdmin() method.
    at org.apache.kafka.streams.KafkaClientSupplier.getAdmin(KafkaClientSupplier.java:40)
    at org.apache.kafka.streams.KafkaStreams.<init>(KafkaStreams.java:846)
    at org.apache.kafka.streams.KafkaStreams.<init>(KafkaStreams.java:711)
    at org.springframework.kafka.config.StreamsBuilderFactoryBean.start(StreamsBuilderFactoryBean.java:337)
    ... 16 common frames omitted

这可能是什么问题?

更新

我发现有问题的clientSupplier是brave.kafka.streams.TracingKafkaClientSupplier:

enter image description here

此类未实现 KafkaClientSupplier 中的预期方法(kafka-streams 3.0.0):

enter image description here

enter image description here

最佳答案

您应该针对 Brave 提出问题 - 或者可能有与 3.0.0 Kafka jar 兼容的更新版本。

与此同时,您应该能够将 kafka-clients 和 kafka-streams 降级到 2.8.1。

如果您使用嵌入式 kafka 代理进行测试,您还需要降级其他一些 jar。请参阅https://docs.spring.io/spring-kafka/docs/2.8.1-SNAPSHOT/reference/html/#update-deps

关于spring-boot - 跟踪KafkaClientSupplier错误 "Implementations of KafkaClientSupplier should implement the getAdmin() method",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70382128/

相关文章:

java - 当主题有多个分区时,KTable-KTable 外键连接不会产生所有消息

java - 文件到 MultipartFile 抛出 NullPointerException

java - 禁用/启用 OAuth2,无需两个安全配置

java - 如何正确实现 Binder ?

java - @StreamListener 未收到来自 kafka 主题的消息

spring-boot - Spring boot 2.0.5.RELEASE - sleuth 和 mockito

spring-boot - 使用 SpringBootTest 时如何在 Controller 中使用 span 初始化默认跟踪上下文

spring-boot - 将 Spring Boot 配置文件添加到 Sleuth/Zipkin 日志

java - 在Spring Boot中,除了在application.properties中设置端口之外,还有其他方法可以更改端口吗?

java - 带有 Spring Boot 的 Docker 和 Eureka 无法注册客户端