java - Spring Boot for Kafka - 一个应用程序中的多个 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, Object>();
props.put(StreamsConfig.APPLICATION_ID_CONFIG, "kafka-stream");
props.put(StreamsConfig.BOOTSTRAP_SERVERS_CONFIG, "other-machine:9092");
....
return new KafkaStreamsConfiguration(props);
}
}
谢谢
解决方案
Spring 只会创建一个工厂 bean(来自默认配置 bean)。对于第二个,您需要定义一个StreamsBuilderFactoryBean
使用它的。
推荐阅读
- python - 打印出列表中某个范围内的最大值/最小值
- amazon-web-services - 使用 Flask Web 应用程序配置 Route53、ALB 和 Fargate
- c# - asp.net Webforms:如何从一个页面发送 POST 请求并在不同页面上读取 POST 响应
- r - 错误:将绘图输出到 PDF 时字体类型无效
- xamarin.forms - 通过调用委托加载自定义 WebView - Xamarin (iOS)
- python - 使用烧瓶在邮递员中返回的重复字段
- flutter - 使用 Google Maps Flutter Plugin 在 Android 上崩溃的 Flutter App
- max-msp-jitter - Max/MSP:如何操作 zl 列表数据以获取上四分位数
- go - 如何同时使用 LoadHTMLGlob 和 LoadHTMLFiles
- android - 通过 Android Studio 中的 ADM 下载管理器下载