java - 如何禁用拓扑一段时间,然后在该时间段结束时自动启动它

标签 java apache-kafka apache-storm

我有一个拓扑,它从主题收集修改,对数据进行一些修改,然后将它们发布到 API 上,我们发布的 API 有一些维护期(我们无法在那里发布任何内容的时间),我们已经有了一些返回维护周期的服务,但我们想知道如何在一段时间内禁用拓扑,然后在该周期结束时自动启动它

我们正在使用以下技术:

  • Spring 启动 REST API
  • Apache Storm
  • Apache 卡夫卡
  • 卡夫卡 Storm

不知道Kafka Spout集成中是否有办法停止读取。

感谢您的帮助

最佳答案

您可以在 Storm 上执行此操作:在维护开始时间(使用 TimerTask 等),调用

Nimbus.Client client = NimbusClient.getConfiguredClient(Utils.readStormConfig()).getClient();
..
client.deactivate("topologyName");

最后,调用client.activate。

关于java - 如何禁用拓扑一段时间,然后在该时间段结束时自动启动它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50218651/

相关文章:

Java:访问相同的ArrayList,同时使用该ArrayList中的其余元素

scala - 卡夫卡制片人卡在发送

apache-storm - Apache Storm : Topology submission exception: [x] subscribes from non-existent stream

java - NoClassDefFoundError斯坦福CoreNLP

apache-spark - 如何在 Kafka 主题中流式传输 100GB 的数据?

visual-studio-2015 - 从 Visual Studio 2015 中删除 Storm 模板

java - 我可以将 Spannable 转换为 Android 中的字符串以加载 ExpandableListView 吗?

java - Spring框架-如何将目录作为资源注入(inject)?

java - 使用 Spring Boot 的 Spring Batch - 从不重试写入错误

apache-kafka - 将 Kafka 拆分为单独的主题或单个主题/多个分区