繁体   English   中英

如何使用 Kafka Streams 和 Spring Kafka Streams 定期(每 5 分钟)暂停和恢复 stream 处理?

[英]How can I pause and resume stream processing periodically(every 5 minutes) using Kafka Streams and Spring Kafka Streams?

我是卡夫卡流的新手。 我需要从包含源和目标主题名称的配置文件动态创建 kafka 流。 是否可以重新启动和停止 Kafka 流? 我的目标是使用 kafka 流定期将消息从一个主题传输到另一个主题。 我使用了 spring cron 作业并尝试关闭和打开 stream,但是当我关闭 stream 时我无法再次启动它。我收到此错误 --> 客户端已经启动或已经停止,无法重新启动。 我在 java 中编写代码

         +--------------+
               +<----- | Created (0)  |
               |       +-----+--------+
               |             |
               |             v
               |       +----+--+------+
               |       | Re-          |
               +<----- | Balancing (1)| -------->+
               |       +-----+-+------+          |
               |             | ^                 |
               |             v |                 |
               |       +--------------+          v
               |       | Running (2)  | -------->+
               |       +------+-------+          |
               |              |                  |
               |              v                  |
               |       +------+-------+     +----+-------+
               +-----> | Pending      |<--- | Error (5)  |
                       | Shutdown (3) |     +------------+
                       +------+-------+
                              |
                              v
                       +------+-------+
                       | Not          |
                       | Running (4)  |
                       +--------------+

KafkaStreams class 上有两种方法pauseresume可以用来暂停和恢复处理。

https://kafka.apache.org/33/javadoc/org/apache/kafka/streams/KafkaStreams.html#pause-- https://kafka.apache.org/33/javadoc/org/apache/kafka/streams /KafkaStreams.html#resume--

您可以使用java.util.concurrent.ScheduledExecutorServicescheduleAtFixedRate方法来安排每 5 分钟暂停和恢复一次。

如果你使用 Spring Cloud Stream - 你可以连接到 BindingsLifecycleController

https://docs.spring.io/spring-cloud-stream/docs/current/reference/html/spring-cloud-stream.html

另一种选择是通过 Actuator endPoints 公开控件并调用它(更多信息也在同一链接中)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM