【发布时间】:2014-07-23 15:58:23
【问题描述】:
我有一个风暴拓扑,它在两个节点中。一个是灵气,一个是主管。
不属于 Storm 的代理接受来自客户端的 HTTP 请求并将其传递给 Storm 拓扑。
拓扑是这样的: 1. 代理将数据传递给 Storm Spout。 2. spout 将数据传递给多个 bolt。 3. 最后一个bolt将结果传回proxy。
我正在运行代理并将数据传递给storm。我能够将套接字连接到拓扑端的侦听器。 spout 发出的数据在 UI 中显示为 0。相同的拓扑结构在本地模式下也能正常工作。
认为这是主管的问题,但主管似乎运行良好,因为我能够看到主管的描述和各个喷口和螺栓。但它们都没有发出任何东西。
现在,如果问题是数据传递到错误的机器或其他什么,我很困惑。为了与 spout 通信,我从代理创建套接字,如下所示:
InetAddress stormInetAddr=InetAddress.getByName("198.18.17.16");
int stormPort=4321;
Socket stormSocket=new Socket(stormInetAddr,stormPort);
这里 198.18.17.16 是 nimbus IP。 4321 是预期数据的端口。
我尝试在这里给主管 IP,但它没有连接。 但是,它确实如此。 现在代理等待特定端口上的输出。
另一方面,处理后,从螺栓中读取数据。集群似乎没有任何活动。但是,我收到的响应基本上与我发送的带有一些混乱数据的请求相同。这个响应应该由最后一个螺栓发送到我定义的特定端口。我得到了数据,但集群显示没有活动。我知道这很模糊,但是,有人知道发生了什么吗?
【问题讨论】:
标签: sockets proxy apache-storm