es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Error de TracingKafkaClientSupplier: “Las implementaciones de KafkaClientSupplier deben implementar el método getAdmin()”

Estoy actualizando una aplicación Spring Boot a Boot 2.6.1, Cloud 2021.0.0 y Cloud Stream 3.2.1.

Esta aplicación tiene una serie de KStreams como:

@Bean
fun processEvent(): Function<><id, eventreceived="">, KStream<id, updatedinfo?="">> {
    ...
}

Ahora la aplicación se bloquea al iniciar:

Caused by: org.springframework.kafka.KafkaException: No se pudo iniciar el stream; la excepción anidada es java.lang.UnsupportedOperationException: Las implementaciones de KafkaClientSupplier deben implementar el método getAdmin().
    at org.springframework.kafka.config.StreamsBuilderFactoryBean.start(StreamsBuilderFactoryBean.java:359)
    at org.springframework.cloud.stream.binder.kafka.streams.StreamsBuilderFactoryManager.start(StreamsBuilderFactoryManager.java:107)
    ... 15 tramas comunes omitidas
Caused by: java.lang.UnsupportedOperationException: Las implementaciones de KafkaClientSupplier deben implementar el método getAdmin().
    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 tramas comunes omitidas

¿Cuál podría ser el problema aquí?

ACTUALIZACIÓN

Encontré que el clientSupplier problemático es brave.kafka.streams.TracingKafkaClientSupplier:

enter image description here

Esta clase no implementa el método esperado de KafkaClientSupplier (kafka-streams 3.0.0):

enter image description here

enter image description here</id,></id,>

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    El problema parece estar relacionado con KafkaClientSupplier que no está implementado correctamente por la clase brave.kafka.streams.TracingKafkaClientSupplier. Esto probablemente se debe a una incompatibilidad de versiones entre spring-cloud-stream-binder-kafka y la dependencia kafka-streams en el proyecto. El TracingKafkaClientSupplier espera una versión diferente de KafkaStream que tiene una firma de método diferente para KafkaClientSupplier.getAdmin().

    Actualizar el clienteProveedor problemático asegurando que se utiliza la versión de dependencia de kafka-streams compatible con spring-cloud-stream-binder-kafka podría resolver el problema. Alternativamente, modificar la clase brave.kafka.streams.TracingKafkaClientSupplier para implementar el método getAdmin() en la interfaz KafkaClientSupplier podría ayudar a garantizar la compatibilidad con kafka-streams 3.0.0.

Comments are closed.