【问题标题】:Storm Topology: Multiple vs. One风暴拓扑:多对一
【发布时间】:2016-08-21 02:48:10
【问题描述】:

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

我们现在想到了两种情况如何处理它。

一) 1. Spout 将接收 msg 并将其传递给 ParserBolt 2. ParserBolt 将读取 ServiceID 并根据 ID 将其传递给不同的 Bolt

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

b) 1. 多个拓扑 - 每个 ServiceID 一个。 2. Spout 将接收 msg 并将其传递给 Bolt 3. Bolt 将读取 ServiceID - 如果正确的 serviceID 会将其传递给下一个 Bolt,如果不正确的 serviceID 将关闭此作业

由于 Storm 保证每个 msg 至少被处理一次 - 每个 msg 都会在某个时候到达正确的拓扑。但是拓扑会忽略很多不适合它们的消息。

【问题讨论】:

  • 嘿,埃里克,欢迎来到 stackoverflow。您的问题非常开放,没有明确的答案。你能改写问一个更具体的问题吗?见here for more info

标签: azure apache-storm topology


【解决方案1】:

如果您无法在 Storm 之外拆分输入流,则绝对应该使用单一拓扑。这将节省大量网络流量和不必要的数据复制。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-08-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多