java - 如何在一段时间内禁用拓扑,然后在一段时间结束时自动启动它
问题描述
我有一个拓扑,它从一个主题收集修改,对数据进行一些修改,然后将它们发布到 API 上,我们发布的 api 有一些维护期(我们不能在那里发布任何东西的时间),我们已经有了有些服务会返回维护期,但我们想知道如何在一段时间内禁用拓扑,然后在该期间结束时自动启动它。
我们正在使用以下技术:
- Spring Boot REST API
- 阿帕奇风暴
- 阿帕奇卡夫卡
- 卡夫卡风暴
我不知道是否有办法在 Kafka Spout 集成中停止阅读。
谢谢你的帮助
解决方案
您可以在 Storm 上执行此操作:在维护开始时间(使用 TimerTask 等),调用
Nimbus.Client client = NimbusClient.getConfiguredClient(Utils.readStormConfig()).getClient();
..
client.deactivate("topologyName");
最后,打电话client.activate.
推荐阅读
- typescript - 排除 node_modules 时出现打字稿错误
- kotlin - Kotlin 在 for 循环中跳过下一次迭代
- swift - 斯威夫特:如何设置最大/最小平移手势?
- ruby-on-rails - 使用哈希数组查询活动记录
- swift - 过滤联系人返回混合的联系人信息 - Swift
- ios - Phaser js和Apache Cordova绿色矩形错误
- android - 检索 Cloud Firestore 查询中某个字段的所有值
- swift - 如何从 NSObject 访问多个按钮?
- java - 具有枚举类型匹配的spring jpa查询where子句
- django - toggle_paused() 缺少 1 个必需的位置参数:视图运行模型方法时的“自我”