[英]How can I pause (turn on/off) stream processing w/ Spring Cloud Stream & Kafka Streams Binder?
[英]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 上有两种方法pause
和resume
可以用来暂停和恢复处理。
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.ScheduledExecutorService
的scheduleAtFixedRate
方法来安排每 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.