Apache Storm spout可以相互通信吗?

时间:2014-10-01 10:01:47

标签: java apache-storm

我有一个目录,另一个进程将文件放入。

我们当前的Storm实现读取此目录并选择最旧的文件并打开该文件的阅读器。此读取器作为spout中的字段保存,因此当调用nextTuple()时,将从文件输出一行。一旦喷口完成读取,它将关闭阅读器并打开一个新的阅读器到新文件。

为了提高吞吐量,一个想法是让多个spout同时读取多个文件,因为这些spout将在同一目录中的相同文件上进行争夺,是否有一种方法可以在spouts之间进行通信,以便他们可以协商哪些文件阅读? (或者有一个总经理将文件分配给鲸鱼喷水)。

存储目录和文件并从HDFS读取。

1 个答案:

答案 0 :(得分:3)

我认为开箱即用,没有办法让两个喷嘴一起沟通。 但是,您应该尝试https://github.com/ptgoetz/storm-signals

有一个BaseSignalSpout依赖于zookeeper在风暴组件之间发送消息。

希望这有帮助!