【发布时间】:2020-12-01 17:05:27
【问题描述】:
我们正在使用 micronaut/kafka-streams。使用此框架来创建流应用程序,您可以构建如下内容:
@Factory
public class FooTopologyConfig {
@Singleton
@Named
public KStream<String, FooPojo> configureTopology {
return builder.stream("foo-topic-in")
.peek((k,v) -> System.out.println(String.format("key %s, value: %s", k,v))
.to("foo-topic-out");
}
}
这个:
- 收到
ConfiguredStreamBuilder(StreamsBuilder周围的非常轻的包装) - 构建并返回流(我们实际上并不确定返回流的重要性, 但这是一个不同的问题)。
ConfiguredStreamBuilder::build()(在 StreamsBuilder 上调用相同)稍后由框架调用,并且返回的 Topology 不可用于 Micronaut 注入。
我们需要Topology bean 来记录拓扑的描述(通过Topology::describe)。
执行以下操作是否安全?
- 调用
ConfiguredStreamBuilder::build(因此调用StreamsBuilder::build)并使用返回的Topology实例来打印人类可读的描述。 - 允许框架稍后再次调用
ConfiguredStreamBuilder::build,并使用返回的拓扑的second实例来构建应用程序。
【问题讨论】:
标签: java apache-kafka-streams micronaut-kafka