【问题标题】:Tomcat or Jetty for Java server applicationJava 服务器应用程序的 Tomcat 或 Jetty
【发布时间】:2013-03-22 09:57:47
【问题描述】:

假设我必须设计一个服务器来处理并发的完全独立的 HTTP 请求。该处理主要受 CPU 限制(不涉及数据库)。

请求相对较小(1-10K),延迟非常重要(越少越好)。并发请求数和“速率”(每秒请求数)仍然未知。

我们将用 Java 开发服务器。我们应该使用 Tomcat 还是应该使用嵌入式 HTTP 服务器(例如 Jetty)作为应用程序的一部分?

【问题讨论】:

    标签: java tomcat web-applications architecture jetty


    【解决方案1】:

    任何一个都可以满足您的要求。

    Tomcat 需要安装 - 或者可以嵌入;感谢 Jayan 的更正。 Jetty 可以嵌入或以独立模式运行。在此基础上进行选择。

    但是,如果您要设置一个集中式服务器,您可能会考虑使用 Netty。 NIO 可能会帮助您提高吞吐量。根据下面的 Joakim Erdfelt,Jetty 也使用 NIO。感谢您的教育和指正。不知道Tomcat有没有跟风。

    【讨论】:

    • 可以嵌入Tomcat:tomcat.apache.org/tomcat-7.0-doc/api/org/apache/catalina/…(虽然我没有检查)
    • Jetty 也做 NIO。事实上,从 Jetty 9 开始,所有 BIO 支持都已取消。
    • 事后我想补充一点,您在这里最大的收获将是在缩放、码头方面使用异步 servlet,我认为 tomcat 不应该是您在性能方面的最大瓶颈.