Spring Bind Multi Multi Binder - Ошибка KStreamBinderConfiguration требуется один компонент, но 2 были найдены - PullRequest
1 голос
/ 10 января 2020

У меня есть случай использования, когда одна MS, обрабатывающая поток kafka, будет иметь процессор и потребителя, который будет использовать выходное сообщение процессора. Аналогично приведенному ниже примеру в github

https://github.com/spring-cloud/spring-cloud-stream-samples/tree/master/kafka-streams-samples/kafka-streams-message-channel

при выполнении приведенного выше примера я получаю следующую ошибку

***************************
APPLICATION FAILED TO START
***************************

Description:

Parameter 0 of method provisioningProvider in org.springframework.cloud.stream.binder.kafka.streams.KStreamBinderConfiguration required a single bean, but 2 were found:
    - kafkaBinderConfigurationProperties: defined by method 'kafkaBinderConfigurationProperties' in org.springframework.cloud.stream.binder.kafka.streams.MutliBinderPropertiesConfiguration
    - binderConfigurationProperties: defined by method 'binderConfigurationProperties' in class path resource [org/springframework/cloud/stream/binder/kafka/streams/KafkaStreamsBinderSupportAutoConfiguration.class]


Action:

Consider marking one of the beans as @Primary, updating the consumer to accept multiple beans, or using @Qualifier to identify the bean that should be consumed

Ответы [ 2 ]

0 голосов
/ 12 марта 2020

У меня была похожая проблема, и я исправил ее, добавив в pom:

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-actuator</artifactId>
    </dependency>
0 голосов
/ 10 января 2020

Это, похоже, какая-то ошибка со стороны Spring Cloud.

Этот крипт c thread предложил понизить зависимости (org.springframework.cloud:spring-cloud-stream-binder-kafka-streams и org.springframework.cloud:spring-cloud-stream для меня) от 3.0.1.RELEASE до 3.0.0.RELEASE.

Это действительно было исправлением для моей версии этой проблемы, и я думаю, что это также для вас.

...