【问题标题】:Automatic restart of Spring Boot app after fatal exception致命异常后自动重启 Spring Boot 应用程序
【发布时间】:2023-03-30 19:46:01
【问题描述】:

node.js 世界中,有类似Supervisor 的应用程序 - 它是一个守护进程,用于检查您的应用程序是否正在运行,如果没有(关闭、崩溃),它会立即重新启动它。这是在生产中临时处理严重错误的一种非常好的方法,当一个功能可能失败,但系统的其余部分仍在运行时。

我来自PHP 背景,当出现问题时,您只需在浏览器中按back 按钮即可。

如何在Spring Boot 中实现这种行为?到目前为止,我注意到的是,当应用程序面临未处理的异常时,它会崩溃并且整个服务器都关闭了。我知道这类错误应该尽快修复,但有时这是不可能的,系统需要运行。 有没有类似Node.jssupervisor的工具?

【问题讨论】:

  • Supervisor 似乎不是特定于节点的,应该没有任何东西阻止您将它与 Spring Boot 应用程序一起使用。
  • 问题是......我问这个问题是因为我想知道这是处理致命错误的唯一方法。也许您还有其他关于如何从它们中恢复而无需重新启动的建议?

标签: java spring spring-boot


【解决方案1】:

过去我有时会使用Java Wrapper by Tanuki,它的效果非常好。否则,您可以选择监视进程并在它失败时自动重新启动(取决于您的系统环境)或在应用程序的最高级别捕获 Throwable,这不是一个好主意,因为您将捕获致命的情况按意图应该杀死你的jvm执行,例如内存不足...

【讨论】:

  • 感谢您的回答。您现在正在使用/做什么来防止崩溃?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-06-24
  • 2016-01-29
  • 2020-07-27
  • 2019-12-01
  • 1970-01-01
  • 2015-07-19
相关资源
最近更新 更多