【发布时间】: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