Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/320.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为生产群集配置storm群集_Java_Apache Storm_Computation - Fatal编程技术网

Java 为生产群集配置storm群集

Java 为生产群集配置storm群集,java,apache-storm,computation,Java,Apache Storm,Computation,我们已经为storm cluster配置了一台nimbus服务器和三个监控器。发布了三种拓扑,它们进行不同的计算,如下所示 拓扑1:从MongoDB读取原始数据,进行一些计算并存储结果 Topology2:读取topology1的结果,进行一些计算,并将结果发布到队列中 Topology3:使用队列中topology2的输出,调用REST服务,从REST服务获取回复,在MongoDB集合中更新结果,最后发送电子邮件 作为新的蜜蜂风暴,寻找以下问题的专家建议 是否有一种方法可以将所有拓扑都可以

我们已经为storm cluster配置了一台nimbus服务器和三个监控器。发布了三种拓扑,它们进行不同的计算,如下所示

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

  • Topology2:读取topology1的结果,进行一些计算,并将结果发布到队列中

  • Topology3:使用队列中topology2的输出,调用REST服务,从REST服务获取回复,在MongoDB集合中更新结果,最后发送电子邮件

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

  • 是否有一种方法可以将所有拓扑都可以引用的所有配置(例如config.json)外部化
  • 目前连接MongoDB、MySql、Mq和REST URL的配置都是在java文件中硬编码的。为每个客户自定义源文件不是一个好做法

  • 想要在每个阶段[喷口和螺栓]进行日志记录,在哪里发布/存储集群可以使用的log4j.xml

  • 执行阻塞调用是否正确,就像执行来自螺栓的REST调用一样

  • 任何帮助都将不胜感激

  • 因为每个拓扑都只是一个Java程序,所以只需将配置传递到Java Jar,或者传递一个文件路径。拓扑可以在启动时读取文件,并在实例化组件时将任何配置传递给组件

  • Storm使用现成的slf4j,在您的拓扑结构中应该很容易使用。如果使用默认配置,则应该能够通过UI查看日志,或将日志转储到磁盘。如果您找不到,有许多指南可以帮助您,例如

  • 使用storm,您可以灵活地将并发推送到组件级别,并通过实例化多个螺栓获得多个执行器。这可能是最简单的方法,我建议您从这里开始,稍后在拓扑中引入执行器的复杂性,以便异步进行HTTP调用


  • 有关storm中并行性的规范概述,请参见。从简单开始,然后根据需要调整,就像处理任何事情一样

    谢谢@Cory。为1号和2号打开眼界。我对#3有点怀疑,因为据我所知,storm是一个用于分布式计算的平台,主要是CPU受限的作业。用例#3,spout是简单的Mq使用者,Bolt使用数据触发REST调用,这是IO绑定调用。看起来#3与风暴强度(CPU限制计算)相反。请澄清。