【问题标题】:Is it bad to have two webapps on a machine each on different servlet container than both on same?在一台机器上拥有两个 webapps 不是很糟糕吗?
【发布时间】:2013-10-01 19:03:19
【问题描述】:

我需要在 ubuntu VPS 上运行两个 webapp,但一个(我自己的 webapp)更喜欢在 Tomcat 中运行,而其他(Solr webservice)在 Jetty 中更可取。但我认为为每个 webapp 运行单独的服务器会比在同一服务器上运行的两个 webapp 消耗更多的资源(比如内存消耗会更高),不是吗?

如果我在一台机器上同时运行 Tomcat 和 Jetty 以供生产使用,还有什么不好的?

【问题讨论】:

    标签: java tomcat jetty


    【解决方案1】:

    我能想到的一些事情,你提到的一些:

    • 消耗了更多的资源(运行的两个容器的内存使用 通常会运行多个容器)。此外,如果您有两个容器而不是一个容器,则可能会对数据库连接和缓存等内容产生影响。

    • 容器必须在不同的端口上运行(但有一些方法可以让网站访问者觉得它们在同一个端口上)

    • 不要忘记容器通常侦听多个端口,因此您必须确保避免冲突(想想 tomcat 关闭端口等)。

    话虽如此,我一直在我的开发机器上并排运行 tomcat 和 jetty,一切正常。但是,在我的开发机器上运行时,我的主要目标是开发而非性能。

    【讨论】:

    • 消耗了更多资源,但也有好处 - 每个应用程序都会获得一个专用 VM,因此像 GC 这样的事情一次只影响一个应用程序,应用程序不必竞争AS 线程等
    【解决方案2】:

    在同一台机器上运行 Tomcat 和 Jetty 是“性能方面”不是那么“重”的东西,我都(几乎)一直在我的开发机器上运行......在生产中我只使用 Tomcat(在同一个容器中运行多个 Web 服务 - 主要是我的 Web 服务 + Solr)并且我在这两种情况下都没有遇到性能上的重大差异。所以我会说这取决于您的需求......我个人倾向于简化我的生产设置并避免在我的服务器上的多个端口中拥有多个容器。此外,Tomcat 似乎确实是更流行的 java 容器解决方案 (http://zeroturnaround.com/rebellabs/the-great-java-application-server-debate-with-tomcat-jboss-glassfish-jetty-and-liberty-profile/),但这并不意味着它是所有场景的最佳解决方案。我个人倾向于在生产中坚持使用一个 Tomcat...

    【讨论】:

    • 是的,在我的情况下也是如此,我需要在 Tomcat 上部署我的 webapp,但我希望使用的 Solr 更喜欢留在 Jetty..
    • Solr 是使用“默认”(可能是因为简单)Jetty,但这并不意味着Tomcat 不适合部署它。不久前我参加了一个讨论:stackoverflow.com/questions/17790117/…,也许你可以在那里找到更多的信息。
    【解决方案3】:

    是的,运行两个而不是一个确实会消耗更多资源,但出于开发目的,只要您的个人计算机的电源不严重,这应该不是问题。除此之外,您必须解决启动第二个进程时出现的任何端口冲突。错误消息应该告诉您哪个端口有冲突,并且所有端口号都是可配置的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-04-17
      • 2010-10-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-16
      相关资源
      最近更新 更多