Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring boot Spring boot项目发布到生产环境选择war(独立tomcat)还是jar(嵌入式tomcat)?_Spring Boot - Fatal编程技术网

Spring boot Spring boot项目发布到生产环境选择war(独立tomcat)还是jar(嵌入式tomcat)?

Spring boot Spring boot项目发布到生产环境选择war(独立tomcat)还是jar(嵌入式tomcat)?,spring-boot,Spring Boot,我最新的项目使用了SpringBoot,并准备部署到生产环境中,我想知道运行应用程序的方式是具有更好的性能还是具有相同的性能 生成一个war包并将其放在一个独立的tomcat中 生成jar包并使用嵌入式tomcat 此外,在发布到生产环境时,如果应该删除devtools依赖项 这是一个广泛的问题。答案是这取决于你的要求 就我个人而言,我更喜欢今天使用Spring Boot的独立应用程序。一个应用程序,一个JVM。它在部署和运行时行为方面为您提供了更大的灵活性和可靠性。Spring Boot 1.

我最新的项目使用了SpringBoot,并准备部署到生产环境中,我想知道运行应用程序的方式是具有更好的性能还是具有相同的性能

  • 生成一个war包并将其放在一个独立的tomcat中
  • 生成jar包并使用嵌入式tomcat

  • 此外,在发布到生产环境时,如果应该删除devtools依赖项

    这是一个广泛的问题。答案是这取决于你的要求

    就我个人而言,我更喜欢今天使用Spring Boot的独立应用程序。一个应用程序,一个JVM。它在部署和运行时行为方面为您提供了更大的灵活性和可靠性。Spring Boot 1.3.0.RELEASE允许您在Linux服务器上作为守护进程运行Spring Boot应用程序。例如,您可以集成到构建管道中,以便将应用程序打包并发布为RPM进行部署,或者您可以轻松地创建应用程序

    对于像Tomcat这样的servlet容器中的经典部署,在重新部署之后,您将面临各种内存泄漏,例如日志框架、管理糟糕的线程本地对象等等。 要么花时间修复应用程序和框架中的所有内存泄漏,要么在部署后重新启动servlet容器。将应用程序作为独立版本运行时,您不关心这些内存泄漏,因为您必须重新启动才能启动新版本

    过去,在一个servlet容器中运行多个webapps。这可能会导致所有Web应用程序的性能下降,因为每个Web应用程序都有自己的内存、cpu和GC特性,这些特性可能相互干扰。此外,线程池等资源在所有Web应用程序之间共享

    事实上,独立应用程序不会因为服务器上的高负载而导致性能下降,但它不会在内存利用率或GC方面干扰其他应用程序。请记住,如果只关注一个应用程序的特性,那么性能或GC调优就会简单得多。一旦您需要在一个servlet容器中找到多个webapp的共同点,它就会变得复杂

    最后,你的决定可能取决于你的工作环境。如果您在一家由运营部门运行和维护软件的公司中构建应用程序,那么您更有可能被迫构建战争。如果您可以自由选择部署目标,那么我建议使用独立的应用程序


    为了从生产生成中删除devtools

    可以使用将excludeDevtools生成属性设置为完全 取下罐子。Maven和 Gradle插件

    参见弹簧靴