【发布时间】:2018-01-31 08:05:23
【问题描述】:
我的工作是从远程数据库中获取数据并将它们加入到 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 听起来不像是满足您要求的正确工具。如果您需要停止和重新启动流式处理过程,那么它只是一个批处理作业。
标签: apache-kafka apache-kafka-streams apache-kafka-connect spring-kafka