gpt4 book ai didi

java - 如何让一个 spout 等待另一个 spout?

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:53:49 27 4
gpt4 key购买 nike

我有一个用例,我想等待一个 spout 发出并开始从其他 spout 监听 kafka。这在 Storm 中可能吗?

例如:Spout A 做一些处理并发出 done,一旦我收到 done 消息,Spout B 应该从上次运行时停止的偏移量开始监听 Kafka 主题,并发送给其他一些 bolt 。

如有任何帮助,我们将不胜感激。

最佳答案

只需选择 Spout A 与 Spout B 的通信方式即可。您可以:

  1. 使用另一个kafka主题。当 Spout A 完成后,它会生成一条针对特定主题的消息,Spout B 在开始阅读主要主题之前等待关于该主题的消息。

  2. 使用写入 Zookeeper(或 HDFS、HBase 等)的标志来指示 Spout A 已完成

当我说 Spout B 等待时,它的 nextTuple() 方法首先测试来自 A(上面)的通信是否已经发生,并且在它完成之前不做任何进一步的操作就简单地返回。

请记住,您创建和提交拓扑的代码也可以初始化标志(如果您正在执行上面的 2)或者可以创建一个唯一的消息(对于上面的 1)并将其存储在配置中以传递给 Spouts A和 B.

关于java - 如何让一个 spout 等待另一个 spout?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37286610/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com