我是 Java 和 Java Web 应用程序的新手。我试图理解为什么我应该使用像 Tomcat 这样的 Java 应用程序服务器,而不是从命令行运行它。
- 我应该在生产中运行没有 servlet 容器的 Jenkins,即使用
java -jar jenkins.war
吗? - Tomcat更适合生产环境吗?
- 还有其他优点吗?
请告诉我为什么在 servlet 容器中运行应用程序很重要。
我是 Java 和 Java Web 应用程序的新手。我试图理解为什么我应该使用像 Tomcat 这样的 Java 应用程序服务器,而不是从命令行运行它。
java -jar jenkins.war
吗?请告诉我为什么在 servlet 容器中运行应用程序很重要。
实际上,当您将 Jenkins 作为“java -jar jenkins.war”运行时,它无论如何都会启动嵌入式 servlet 容器(Winstone 或 Jetty)。由于构建服务器上的主要负载不是来自网络用户,而是来自构建作业(惊喜 - 惊喜),我认为 servlet 容器类型不会影响性能。此外,构建作业是在单独的 JVM 甚至从机上启动的。
此外,所有服务器/作业/插件配置都存储在 Jenkins home/config 文件夹中,因此您启动 Jenkins 的方式不会影响服务器维护/备份任务。本机安装程序还创建用户并将 Jenkins 作为服务启动。
“ Jenkins: The Definitive Guide ” - “将 Jenkins 作为独立应用程序运行可能不符合每个人的口味。对于生产服务器,您可能希望利用成熟的 Java 应用程序服务器的更复杂的监控和管理功能例如 JBoss、GlassFish 或 WebSphere Application Server。系统管理员可能会警惕相对鲜为人知的 Winstone 服务器,或者可能只是更喜欢 Jenkins 以适应 Java Web 应用程序开发的已知模式。如果是这种情况,您可能更愿意或有义务将 Jenkins 部署为标准 Java Web 应用程序。”