在风暴中设计拓扑?

时间:2013-08-30 08:28:01

标签: java apache-storm

我正在从事网络分析工作。我将使用kafka,storm和mongodb。 Kafka为风暴提供源,Storm处理数据并将数据存储在mongodb中。

要求

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

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

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

  4. 将DBobject保存在mongoDB中。

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

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

    我是否可以使用transactional拓扑或trident拓扑?

    任何帮助或建议都会很棒。

1 个答案:

答案 0 :(得分:3)

我建议在设计螺栓时遵循Unix的理念:“做一件事,做得好”。

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

这样可以保持拓扑简单。每个螺栓都有简单而专注的责任。如果出现问题,您确切知道问题所在。当然,你可以告诉Storm每个螺栓需要多少并行化。

我认为你不需要任何特殊的抽象(三叉戟或交易)。常规的Storm拓扑为您提供了很好的服务。

顺便说一句,Storm文档很棒!