spring kafka流支持文档显示如下内容:
@Bean
public KStream<Integer, String> kStream(StreamsBuilder kStreamBuilder) {
KStream<Integer, String> stream = kStreamBuilder.stream("streamingTopic1");
// ... stream config
return stream;
}
但是,我可能想要一个依赖于多个流或表的拓扑。我可以这样做吗?
@Bean
public KStream<Integer, String> kStream(StreamsBuilder kStreamBuilder) {
KStream<Integer, String> stream1 = kStreamBuilder.stream("streamingTopic1");
KStream<Integer, String> stream2 = kStreamBuilder.stream("streamingTopic1");
// ... stream config
return stream;
}
换句话说,返回的bean是相关的,还是仅对kStreamBuilder进行突变才重要?
答案 0 :(得分:1)
要视情况而定。
如果您不需要在其他地方引用KStream
,则根本不需要将其定义为bean,您可以自动连接由工厂bean创建的StreamsBuilder
。
如果需要引用,则每个引用都必须是其自己的bean。
例如,Spring Cloud Stream构建一个部分流,然后由应用程序对其进行修改。 See here。