我在AWS中有一个EC2实例。该实例正在免费试用一年。我在那里部署了一个java spring-boot应用程序。我的数据库是在mysql中。这是一个轻量级的应用程序,不需要大量资源,所提供的API非常简单。
但问题是应用程序突然停止运行而没有在其应用程序日志中显示任何错误消息。我添加了一个没有显示任何内容的logback。
因此,当我了解服务器应用程序已停止从前端应用程序运行时。我立即检查我的aws控制台,发现主机运行正常,但其中的应用程序已经停止。然后我必须使用screen -S myapp java -jar myapp.jar
再次运行应用程序,它会再次顺利运行。
那么应用程序停止运行的频率如何?我无法衡量它。有时它会在跑了两三天后停止。有时一周后 - 它真的没有任何意义。
实际上并不经常使用从应用程序提供的API。那么应用程序是否有机会被aws主机强行停止?还有什么可能是在没有任何错误日志的情况下停止应用程序的原因吗?
提前致谢。
答案 0 :(得分:0)
我已经搬到了更大的服务器上,现在问题似乎已经解决了。事实证明,EC2 instance (t2.micro)
没有足够的RAM 来运行java应用程序。所以它在运行一段时间后停止了。
但是,当我搬到AWS的更大服务器时,我现在没有问题。具有相同配置的相同服务器应用程序运行正常。
答案 1 :(得分:0)
就我而言,我通过在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。