【发布时间】:2020-03-02 21:25:11
【问题描述】:
我们有一个要求,我们使用 Kafka Streams 从 Kafka 主题中读取数据,然后通过会话池通过网络发送数据。但是,有时,网络调用有点慢,我们需要经常暂停流,确保我们没有超载网络。目前,我们将数据捕获到流中并将其加载到执行器服务,然后通过会话池通过网络发送。
如果执行器服务中的数据过多,我们需要将流暂停一段时间,然后在执行器服务的积压清除后恢复它。为了实现这种暂停机制,我们目前正在关闭流并在积压清除后重新开始。
有什么方法可以暂停 kafka 流吗?
【问题讨论】:
-
您可以修改流程,以便 Kafka Stream 写入另一个主题。并让 Executor 服务根据网络负载的需要读取该主题。
-
pause()/resume()的底层消费者 API 在 Kafka Streams 中不可用。如果你真的需要它,你需要编写一个普通的KafkaConsumer应用程序,而不是使用 Streams API。
标签: java apache-kafka apache-kafka-streams