风暴拓扑:多重与一个

时间:2016-04-27 02:12:08

标签: azure apache-storm topology

设备将向Azure Eventhub发送多条消息(尚未决定)。 每条消息都有不同的格式和内容(虽然需要不同的处理)。 每条消息都将包含一个唯一的ServiceID,用于标识消息的类型。

我们现在有两种情况如何处理它。

A) 1. Spout将收到消息并将其传递给ParserBolt 2. ParserBolt将读取ServiceID并根据ID将其传递给另一个螺栓

在这种情况下,每个msg(基于ServiceID)将通过拓扑中的不同路径。所有消息都可以由一个拓扑处理。

b)中 1.多个拓扑 - 针对每个ServiceID。 2. Spout将收到消息并将其传递给Bolt 3. Bolt将读取ServiceID - 如果正确的serviceID将其传递给下一个bolt,如果不正确serviceID将解除此作业

由于Storm保证每个msg至少处理一次 - 每个msg将在某个时刻到达正确的拓扑。但这些拓扑结构会消除很多不适合他们的消息。

1 个答案:

答案 0 :(得分:0)

如果你不能在Storm之外拆分你的输入流,你肯定应该使用单一拓扑。这将节省大量网络流量和不必要的数据复制。