弹簧应用在风暴中悬挂在喷口和螺栓内

时间:2015-10-20 11:03:39

标签: spring spring-boot apache-storm

在我的spout中,我启动了一个spring boot应用程序,它基本上初始化了所有的bean和类。

每当我在远程集群中启动拓扑时,这个spring应用程序在我的Spout的open方法中运行的那一刻,我看到拓扑挂起,我看到我的应用程序的工作日志中没有错误和输出。一段时间后,我的日志文件中会出现相同的消息(尽管有新的时间戳)。可能是群集中出现此问题的原因。

在我在日食中运行的本地群集上,一切正常。

此外,我在哪里可以看到来自我的应用程序的日志消息。我只能在工作日志中看到来自Spouts和Bolts的日志消息。但是我的应用程序打印的其他日志呢?他们需要从我的结局中配置他们的东西吗?

这就是我在Spout =>

的open方法中所做的
LOG.info("Inside Synchrnized block for Storm Context");

      ApplicationContext context = new AnnotationConfigWebApplicationContext();

      LOG.info("Inside Create Application Context block for Storm Context");

      SpringApplicationBuilder appBuilder = new SpringApplicationBuilder(Application.class);

      LOG.info("Loading Profiles ");

      context = (ApplicationContext) appBuilder.profiles("common","common_rabbitmq","common_mongo_db", "common_mysql_db",

                                                         "common_topology").run();

      LOG.info("Set the Storm Context "); 

在我的工作日志中,我只能看到生成的日志

  "Inside Synchrnized block for Storm Context";
 "Loading Profiles "; 

打印后应用程序挂起。它永远不会从run方法返回,也永远不会打印“Set the Storm Context”

PS =>这里的运行方法

appBuilder.profiles("common","common_rabbitmq","common_mongo_db", "common_mysql_db","common_topology").run();

不是在另一个线程上运行它(它不是在不同的线程中启动它)而是它在Spout运行的同一个线程上工作。

0 个答案:

没有答案