不确定这是 ServerFault 还是 StackOverflow 问题。我在这里发布它,因为它更多是与服务器相关的事情。
我们正在 Ubuntu 服务器上的 Tomcat 容器中运行一个 SpringBoot 应用程序(Java)(作为 REST API)。正如预期的那样,有时我们需要上传应用程序的新版本,我想知道重新启动的首选方法是什么?
目前,我们使用一个 shell 脚本来检测某个目录中是否存在某个名称的 JAR 文件,如果找到,它会停止该进程,移动新文件,备份旧文件并使用新的 JAR 文件重新启动应用程序。
问题是,有时 Tomcat 可能需要长达 15 秒才能重新启动,导致 REST 服务在此期间处于关闭状态。虽然时间不长,但 15 秒在我们看来却是永恒。
我主要想问的是,这是一种好方法还是糟糕的方法,以及是否有可以采取不同措施来加快 REST 应用程序的重新加载速度。
提前感谢任何指点...
答案1
我可以提供简单的解决方案,您应该在 tomcat 之前放置反向代理,例如nginx
,在不同的端口上启动新的实例tomcat
,更改nginx
上游配置并重新加载它。