当前位置: 首页 > 知识库问答 >
问题:

tomcat中的两个war文件与每个tomcat中的每个war文件-性能比较

孙财
2023-03-14

我有两个war文件要部署在tomcat中的一个linux服务器中。考虑到只有一台linux服务器,我有两种方法来部署它们。

>

  • 在一个tomcat中部署两个war文件。内存分配将在两个war文件实例之间共享
    B.部署任何一个war文件都意味着这两个文件都要停机

    在两个不同的Tomcat实例中部署两个war文件。必须分别为每个Tomcat分配内存。这意味着,如果第一个war文件在某些时间占用更多内存,而第二个war文件在不同的时间占用更多内存,那么这两个Tomcat的内存分配将不是最优的<部署任何一个war文件都不会导致另一个文件崩溃

    我想得到关于我的场景的专家意见。还有我错过的任何其他要点。

  • 共有2个答案

    荀靖
    2023-03-14

    部署war文件并不一定意味着停机。新版本可以并行部署。

    您还需要考虑如何管理端口。单个tomcat实例可以侦听端口80(或443)。如果您有2个tomcat实例,您现在需要一些其他进程(例如httpd)来侦听单个端口并在url上匹配以转发到适当的tomcat实例。

    内存的另一个考虑因素是,tomcat本身有一些内存利用率。显然,这会随着其他实例的增加而增加。

    王英彦
    2023-03-14

    新版本的tomcat需要非常低的内存(不到20MB的RAM)才能在不部署任何war文件的情况下运行。运行基本版本的tomcat对CPU的要求也非常低。

    另一方面:
    大多数新版本的tomcat能够重新部署war文件,而无需重新启动。参考tomcat的manager应用程序

    如果没有紧迫的原因,最好使用单个tomcat来部署不同的war文件。这使得服务器管理变得容易。

     类似资料:
    • 我对gradle比较陌生,所以这可能是一个典型的新问题。 在我们的gradle构建中,我们有一组war文件(依赖项),它们都包含一个文件,在构建ear文件之前,我们需要从这些war文件中删除该文件。 我假设我将创建一个新任务并添加一些“依赖”声明。 如何创建为每个WAR文件执行的任务?做这件事最好的方法是什么? 有什么办法能让我在一个任务中完成这件事吗?例如。使用zipTree(foobarwit

    • 我试图为一个我目前正在工作的项目制作一个简单的REST API,以简化我每天必须做的任务,当我到达托管它的地方时,我遇到了一个500服务器的错误。查看(tomcat home dir)/logs/localhost.2021-10-22.log中的日志,我发现了这个错误: 我在这里还有“不存在”的类的代码: 我检查了这个类是否确实存在,尝试重新构建这些类,将其导入为未编译的文件,并使用web.xm

    • 5.使用cmd重新启动tomcat。 “信息:部署web应用程序目录C:\apache-tomcat-7.0.77\webapps\MyProject Jun 07,2017 4:50:19 PM org.apache.catalina.startup.hostconfig deployDirectory信息:web应用程序目录C:\apache-tomcat-7.0.77\webapps\MyP

    • 我试图将WAR文件加载到Tomcat 7中,并使用eclipse启动或停止服务器。 我将war文件粘贴到TOMCAT_HOME/webapps文件夹中,启动了服务器。 服务器启动正常,我收到下面的控制台消息。 但当我试图访问我的应用程序时,它给了我错误404,找不到文件。 我查看了TOMCAT_HOME/webapps应用程序,发现了我的war文件和一个同名文件夹——“JavaServerFace

    • 我在我的tomcat中部署了多个WAR文件,其中包含同一应用程序的不同实例。每个WAR文件都包含一个充当单例的类,但这个单例为我部署的每个WAR获得相同的值。。。事件,如果我需要每个不同的值(DB参数、端口等,…)我了解到,由于Singleton依赖于同一JVM中包含的同一类加载器,这种行为很正常,但我需要为我部署的每个WAR文件获得独立的Singleton实例。 Tomcat服务器是否有任何配置

    • 我是java新手,我在VSCODE上编码。我创建2.java文件,如下图所示: 这些是每个文件: Main.java: