这是阻止kafkastreams的正确方法吗?

Is this a correct way to block kafkastreams?

我的工作是从远程数据库中获取数据并将它们加入到 kafka 流中(丰富)。我现在想做的是定期将远程数据库轮询到本地内存中。我认为当这个轮询操作发生时,应该暂时停止kafka流。我目前的想法是这样的:

@Autowired
private KafkaStreams streams;

@Scheduled(cron = "0 0/15 * * * *")  // this method is scheduled to run every 15 minutes
public synchronized void process() {
    streams.close();
    processPolling();
    streams.start();
}

当方法开始 运行 时,流应该停止处理,然后轮询作业完成到 运行,流应该重新开始处理。

这是一个好习惯吗?有什么改进建议吗?

更好的方法是将远程数据库流式传输到 Kafka 主题中,并在您的 Streams 作业中本地使用它们。 您可以使用 JDBC Connector,或者有多种 CDC 选项,具体取决于您的源数据库。

启动和停止流使其成为一个批处理过程,流处理通过设计避免了相关的注意事项和复杂性。