我应该在生产中没有servlet容器运行Jenkins,即使用java -jar jenkins.war

Sun*_*ani 3 java tomcat jenkins servlet-container

我是Java和Java Web应用程序的新手.我试图理解为什么我应该使用像Tomcat这样的Java应用服务器,而不是从命令行运行它.

  • 我是否应该在生产中没有servlet容器运行Jenkins,即使用java -jar jenkins.war
  • Tomcat更适合生产环境吗?
  • 还有其他优点吗?

请告诉我为什么在servlet容器中运行应用程序很重要.

vol*_*ovs 7

实际上,当你以"java -jar jenkins.war"运行Jenkins时,无论如何它都会启动嵌入式servlet容器(Winstone或Jetty).由于构建服务器上的主要负载不是来自Web用户,而是(来自构建作业的惊喜),我认为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应用程序."