首页 > 解决方案 > 如何在一段时间内禁用拓扑,然后在一段时间结束时自动启动它

问题描述

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

我们正在使用以下技术:

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

谢谢你的帮助

标签: javaapache-kafkaapache-storm

解决方案


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

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

最后,打电话client.activate.


推荐阅读