gpt4 book ai didi

java - tomcat服务每次重启都要部署war文件吗

转载 作者:行者123 更新时间:2023-11-28 23:16:19 25 4
gpt4 key购买 nike

我有几个已部署的 war 文件,Web 应用程序运行良好,但每次 tomcat 服务或系统重新启动时,war 文件都会重新部署并停止重新部署,我设置了配置选项 deployOnStartup 和 autoDeploy在 server.xml 中设置为 false。

但是现在机器重启或者tomcat服务重启后,web应用就不能用了,所以我想是不是每次重启机器或者tomcat都需要重新部署war文件。

我遇到的最初问题是,当 tomcat 在启动时部署 war 文件并重新启动时,它会消耗高达 95% 的 CPU,并且其他进程正在暂停,所以为了解决这个问题,我尝试关闭自动部署,但是如果自动启动已关闭 Web 应用程序无法运行。所以我想知道有没有办法限制tomcat的CPU使用率。

最佳答案

这就是 servlet 容器的工作方式:当客户端发出请求时,您不能拥有正在调用的未部署应用程序。在这种情况下,“部署”真正意味着“开始”。没有单独的“部署”步骤,只需要发生一次,应用程序就可以通过容器使用。通常,启动时部署正是您想要发生的事情。

如果您遇到问题是因为您的应用程序在启动时占用了所有系统资源,那么我认为您需要花一些时间重新评估您的容量计划。您是说“其他应用程序被保留”……大概您的意思是,在部署您的 Web 应用程序时,同一服务器上的其他应用程序没有响应。这是因为网络应用程序正在执行的所有 Activity 。

好吧...如果您需要非网络应用程序和网络应用程序同时可用,那么看起来您将需要第二台服务器(或第三台,等等) .

您可能还想查看您的 Web 应用程序,看看它在启动期间正在做什么。也许它做的工作比必要的多,或者它做这些工作的方式效率低下1

最终,这将归结为您需要可用的服务以及可用的硬件。如果服务不能满足您的需求(例如可用性),那么您需要更改其中一个参数(例如更多硬件),直到服务再次满足您的需求。或者,您需要调整您的期望值(抱歉......有些服务只需要在网络应用程序启动时等待)。

1 作为一名顾问,我曾经遇到过一个 Web 应用程序可能需要长达 5 分钟才能启动,而在我们的开发工作中我已经厌倦了等待它。因此,我检查了发生了什么,应用程序正在构建整个关系数据库表和字段结构的内存中表示。他们这样做的方式非常低效,经过几个小时的重构,我将启动时间从大约 5 分钟减少到大约 30 秒。有时,只有更好的方法来做事。

关于java - tomcat服务每次重启都要部署war文件吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48922605/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com