这是阻止Kafka团队的正确方法吗?

7cjasjjr  于 2021-06-08  发布在  Kafka
关注(0)|答案(1)|浏览(372)

我的工作是从远程数据库中获取数据,并将它们连接到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();
}

当方法开始运行时,流应该停止处理,然后轮询作业完成运行后,流应该重新开始处理。
这是个好习惯吗?有改进的建议吗?

unhi4e5o

unhi4e5o1#

更好的方法是将远程数据库流式传输到kafka主题中,并在streams作业中本地使用这些主题。您可以使用jdbc连接器,也可以根据源数据库的不同使用不同的cdc选项。
启动和停止流使其成为一个批处理过程,流处理通过设计避免了相关的考虑因素和复杂性。

相关问题