3

我从事网络分析工作。我将使用 kafka、storm和 mongodb。Kafka 给storm 提供source,Storm 处理数据并将数据存储在mongodb 中。

要求

  1. Storm 接收到一个elf格式的字符串。

  2. 过滤数据(一些过滤器删除未定义的数据)。

  3. 必须将精灵字符串转换为 DBObject

  4. 将 DBobject 保存在 mongoDB 中。

对于上述要求,如何创建拓扑(可以使用多少个螺栓)。

性能是否与螺栓数量成正比?

我是否可以去transactional拓扑或trident拓扑?

任何帮助或建议都会非常有用。

4

1 回答 1

3

我建议在设计bolt时遵循Unix的哲学:“做一件事,把它做好”。

  • 过滤数据的螺栓“A”。
  • 螺栓“B”将螺栓“A”的输出转换为 DBObject 并将其保存到 MongoDB。

这样,您就可以保持拓扑简单。每个螺栓的简单而集中的责任。如果某件事情失败了,你就知道到底是什么问题。当然,您可以告诉 Storm 每个螺栓需要多少并行化。

我不认为你需要任何特殊的抽象(三叉戟或事务)。常规的 Storm 拓扑在这里可以很好地为您服务。

顺便说一句,Storm 文档非常棒!

于 2013-08-30T11:54:13.307 回答