为生产群集配置风暴群集

时间:2016-03-21 13:52:47

标签: java apache-storm computation

我们已经配置了一个带有一个nimbus服务器和三个主管的风暴群集。发布了三种拓扑,它们进行如下不同的计算

  • 拓扑1:从MongoDB读取原始数据,进行一些计算并存储结果

  • 拓扑2:读取topology1的结果并进行一些计算并将结果发布到队列

  • 拓扑3:从队列中消耗topology2的输出,调用REST服务,从REST服务获得回复,在MongoDB集合中更新结果,最后发送电子邮件。

作为新的蜜蜂风暴,寻找以下问题的专家意见

  1. 有没有办法外部化所有配置,例如config.json,可以被所有拓扑引用?
  2. 目前用于连接MongoDB,MySql,Mq,REST URL的配置在java文件中是硬编码的。为每个客户定制源文件不是一个好习惯。

    1. 想要登录每个阶段[Spouts and Bolts],在哪里发布/存储集群可以使用的log4j.xml?

    2. 从螺栓执行REST调用等阻塞调用是否正确?

    3. 非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

  1. 由于每个拓扑只是一个Java程序,只需将配置传递到Java Jar,或将路径传递给文件即可。拓扑可以在启动时读取文件,并在实例化时将任何配置传递给组件。

  2. Storm使用开箱即用的slf4j,它应该很容易在你的拓扑中使用。如果使用默认配置,则应该能够通过UI查看日志,或者转储到磁盘。如果您无法找到它们,可以使用许多指南来帮助您,例如: http://www.saurabhsaxena.net/how-to-find-storm-worker-log-directory/

  3. 有了风暴,您可以灵活地将并发推送到组件级别,并通过实例化多个螺栓来获取多个执行程序。这可能是最简单的方法,我建议您从那里开始,然后在拓扑内部引入执行器的复杂性,以异步进行HTTP调用。

  4. 有关风暴中并行性的规范概述,请参阅http://storm.apache.org/documentation/Understanding-the-parallelism-of-a-Storm-topology.html。开始简单,然后根据需要进行调整,就像任何事情一样。

相关问题