我正试图在春季启动应用程序中运行Kafka Streams Topology
在合流网站上的示例中,他们做了以下操作:
@Component
class Processor {
@Autowired
public void process(final StreamsBuilder builder) {
// the logic to run the topology which is a blocking call
}
}
我认为@Autowired注释意味着方法进程将由Spring框架调用。
我的问题是:假设对方法进程的调用是阻塞调用这是在spring-boot应用程序中运行拓扑的最佳实践吗?为什么不在单独的线程中运行它?
@Autowired
指示Spring将现有StreamsBuilder bean作为参数注入process(...)
函数。这是在引导应用程序上下文时完成的,因此它不会阻止正在运行的拓扑结构本身,因为它是通过某种new KafkaStreams(builder.build(), props);
作为一个单独的线程启动的
因此,这是绝对可以做的。