java - 确保 Spring Boot 应用程序的单实例

标签 java spring-boot web-applications

如何确保我的 SpringBoot 应用程序只运行一个实例。

我正在启动我的 spring boot 应用程序 java -jar target/myproject-0.0.1-SNAPSHOT.jar

我需要确保如果有人在同一个 JVM 上第二次运行此命令,我的应用程序不应启动。 一种方法是在应用程序启动时创建一个锁定文件,并在应用程序关闭时删除锁定文件。但这将需要大量样板代码。 有没有更好的方法来做这个 Spring Boot?

最佳答案

控制应用实例的数量(可以在不同的机器上运行)。我已经使用了这些技术。

  • 要跟踪的数据库表:例如可以记录 IP、实例名称等的 MY_APP_STATUS 表。如果相同的 IP、相同的实例名称已经在运行,应用程序将自行关闭。

我假设您的应用程序已经进行了一些数据访问,在这种情况下,它是 spring-data 中的单行方法。

关于java - 确保 Spring Boot 应用程序的单实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46279074/

相关文章:

database - 除了数据库之外,在 Web 应用程序中存储数据还有哪些其他选项?

java - 当日志消息中包含 "Task"时,log4j 不记录日志?

java - Spring Boot 中自定义 LdapUserDetailsS​​ervice 始终无法匹配密码

javascript - 在客户端 JavaScript 中存储 Web 应用程序的用户密码 - 这安全吗?

java - 防止 Controller 响应

java - 当我第一次检索必须在 @ManyToMany 关系中使用的对象时,为什么会获得此 "detached entity passed to persist"?

R网页应用介绍

java - java线程的共享变量

java - org.h2.jdbc.JdbcSQLException : Unsupported connection setting AUTO_SERVER

java - 如何将 2n 表示为 n 个变量的总和(Java 实现?)