【问题标题】:Java application stops running after some time in Amazon AWSJava 应用程序在 Amazon AWS 中运行一段时间后停止运行
【发布时间】:2018-04-30 21:42:10
【问题描述】:

我在 AWS 中有一个 EC2 实例。该实例免费试用一年。我在那里部署了一个 java spring-boot 应用程序。我的数据库在mysql中。这是一个不需要大量资源的轻量级应用程序,并且提供的 API 非常简单。

但问题是应用程序突然停止运行,而在其应用程序日志中没有显示任何错误消息。我添加了一个没有显示任何内容的 logback。

所以当我了解到服务器应用程序已停止从前端应用程序运行时。我立即检查了我的 aws 控制台,发现主机运行良好,但其中的应用程序已停止。然后我不得不使用screen -S myapp java -jar myapp.jar 再次运行该应用程序,它再次顺利运行。

那么应用程序停止运行的频率如何?我无法测量它。有时它会在运行两三天后停止。有时一周后 - 这真的没有任何意义。

应用程序提供的 API 实际上并不经常使用。那么应用程序是否有可能被 aws 主机强制停止?还有什么其他原因可能是在没有任何错误日志的情况下停止应用程序的原因吗?

提前致谢。

【问题讨论】:

    标签: mysql amazon-web-services spring-boot amazon-ec2


    【解决方案1】:

    我已经搬到更大的服务器上,现在问题似乎已经解决了。事实证明,EC2 instance (t2.micro) 没有足够的 RAM 来运行 Java 应用程序。所以它在运行一段时间后停止了。

    但是,当我迁移到 AWS 中更大的服务器时,我现在没有遇到任何问题。具有相同配置的相同服务器应用程序运行良好。

    【讨论】:

      【解决方案2】:

      在我的例子中,我通过在 aws Linux 机器中将 spring boot 应用程序作为服务运行来解决了这个问题。 click here 知道如何在 Linux 中做到这一点。同样在我的情况下,我必须将“ExecStart”属性更改如下:

      ExecStart=/bin/bash /home/ubuntu/start-spring.sh

      “/home/ubuntu/start-spring.sh”是“start-spring.sh”(bash 命令文件)的位置。如果系统在编译代码时崩溃或响应时间比平时多。在这种情况下,您需要增加系统的 RAM。

      【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-01-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-01-20
      • 2011-05-18
      • 2015-12-29
      相关资源
      最近更新 更多