Kafka的Spring Boot-一个应用程序中的多个KafkaStreams配置

问题描述

在春季,kafka流可以在一个应用程序中定义两个配置吗? 如果我们有两个@Bean这样的配置,如何在流中使用secondConfig

@Configuration
@EnableKafkaStreams
public class KafkaStreamConfig {

    @Bean(name = KafkaStreamsDefaultConfiguration.DEFAULT_STREAMS_CONFIG_BEAN_NAME)
    public KafkaStreamsConfiguration kafkaStreamConfig() {
        var props = new HashMap<String,Object>();

        props.put(StreamsConfig.APPLICATION_ID_CONFIG,"kafka-stream");
        props.put(StreamsConfig.BOOTSTRAP_SERVERS_CONFIG,"localhost:9092");

        ....
 
        return new KafkaStreamsConfiguration(props);
    }

    @Bean(name = "secondConfig")
    public KafkaStreamsConfiguration kafkaStreamConfig() {
        var props = new HashMap<String,"other-machine:9092");

        ....
 
        return new KafkaStreamsConfiguration(props);
    }


}

谢谢

解决方法

Spring只会创建一个工厂Bean(从默认配置Bean)。对于第二个,您将需要定义一个使用它的StreamsBuilderFactoryBean

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...