Apache Storm spout可以相互通信吗?

Mic*_*cky 7 java apache-storm

我有一个目录,另一个进程将文件引入.

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

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

目录和文件存储在HDFS中并从中读取.

fhu*_*ois 3

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

有一个BaseSignalSpout,它依赖zookeeper在storm组件之间发送消息。

希望这有帮助!