在Spring Boot应用程序的生产中使用Tomcat

在Spring Boot应用程序的生产中使用Tomcat,spring,spring-boot,tomcat,microservices,Spring,Spring Boot,Tomcat,Microservices,作为SpringBoot的新手,我需要知道以下几点,因为我无法直接找到google结果。 在现实生活中,他们真正使用什么应用服务器来部署这些Spring Boot应用程序? 公司真的在使用Tomcat吗?如果是这样,他们是通过集群实现的吗?Spring boot内置了一个Tomcat服务器,它只是从Java运行 Tomcat内置在jar中,因此在任何环境中都是一样的 下面是一个典型的spring引导jar,其中显示了tomcat jar: greg@greg-XPS-13-9360:~/work

作为SpringBoot的新手,我需要知道以下几点,因为我无法直接找到google结果。 在现实生活中,他们真正使用什么应用服务器来部署这些Spring Boot应用程序?
公司真的在使用Tomcat吗?如果是这样,他们是通过集群实现的吗?

Spring boot内置了一个Tomcat服务器,它只是从Java运行

Tomcat内置在jar中,因此在任何环境中都是一样的

下面是一个典型的spring引导jar,其中显示了tomcat jar:

greg@greg-XPS-13-9360:~/work/boot-docker/target$ jar tvf boot-docker-1.0.3.jar | grep tomcat
  2293 Mon Jan 30 19:45:14 GMT 2017 BOOT-INF/lib/spring-boot-starter-tomcat-1.5.1.RELEASE.jar
241640 Tue Jan 10 21:03:52 GMT 2017 BOOT-INF/lib/tomcat-embed-websocket-8.5.11.jar
3015953 Tue Jan 10 21:03:50 GMT 2017 BOOT-INF/lib/tomcat-embed-core-8.5.11.jar
239791 Tue Jan 10 21:03:50 GMT 2017 BOOT-INF/lib/tomcat-embed-el-8.5.11.jar
我们在Redhat Openshift云上以docker映像(完整的虚拟Unix服务器)的形式运行spring引导应用程序,这是典型的


顺便说一句,Tomcat在商业上使用,非常可靠。

Spring boot内置了一个Tomcat服务器,它只是从Java运行

Tomcat内置在jar中,因此在任何环境中都是一样的

下面是一个典型的spring引导jar,其中显示了tomcat jar:

greg@greg-XPS-13-9360:~/work/boot-docker/target$ jar tvf boot-docker-1.0.3.jar | grep tomcat
  2293 Mon Jan 30 19:45:14 GMT 2017 BOOT-INF/lib/spring-boot-starter-tomcat-1.5.1.RELEASE.jar
241640 Tue Jan 10 21:03:52 GMT 2017 BOOT-INF/lib/tomcat-embed-websocket-8.5.11.jar
3015953 Tue Jan 10 21:03:50 GMT 2017 BOOT-INF/lib/tomcat-embed-core-8.5.11.jar
239791 Tue Jan 10 21:03:50 GMT 2017 BOOT-INF/lib/tomcat-embed-el-8.5.11.jar
我们在Redhat Openshift云上以docker映像(完整的虚拟Unix服务器)的形式运行spring引导应用程序,这是典型的


顺便说一句,Tomcat在商业上使用,非常可靠。

使用Spring Boot应用程序,您可以生成一个包含嵌入式Tomcat的应用程序jar。您可以将web应用程序作为普通Java应用程序运行

如果您仍然希望使用Tomcat服务器部署应用程序

首先,您需要打包一个WAR应用程序,而不是一个JAR。为此,您需要使用以下内容更改pom.xml:

<profiles>    
         <profile>
            <id>war</id>
            <properties>
                <packaging.type>war</packaging.type>
            </properties>
            <dependencies>
                <dependency>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-starter-tomcat</artifactId>
                    <scope>provided</scope>
                </dependency>
            </dependencies>
            <build>
                <finalName>ROOT</finalName>
            </build>
        </profile>
</profiles>
然后,使用war配置文件执行Maven命令包:

mvn clean package -Pwar

使用SpringBoot应用程序,您可以生成一个包含嵌入式Tomcat的应用程序jar。您可以将web应用程序作为普通Java应用程序运行

如果您仍然希望使用Tomcat服务器部署应用程序

首先,您需要打包一个WAR应用程序,而不是一个JAR。为此,您需要使用以下内容更改pom.xml:

<profiles>    
         <profile>
            <id>war</id>
            <properties>
                <packaging.type>war</packaging.type>
            </properties>
            <dependencies>
                <dependency>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-starter-tomcat</artifactId>
                    <scope>provided</scope>
                </dependency>
            </dependencies>
            <build>
                <finalName>ROOT</finalName>
            </build>
        </profile>
</profiles>
然后,使用war配置文件执行Maven命令包:

mvn clean package -Pwar

请原谅我的无知——我有两个问题需要处理:1)所以真正的prod系统只需要安装java的*nix服务器就可以了?2) 那么,在这种情况下,您是否只运行100个Spring boot项目实例来处理服务?@Velan对第1点说是的,通常它们运行在一个可以弹性伸缩的云中,但是这需要100秒的时间,这将是一个巨大的负载。谢谢你的帮助解释@EssexBoy请原谅我的无知-我有两个问题需要处理1)所以真正的prod系统只需要安装java的*nix服务器就可以了?2) 那么,在这种情况下,您是否只需要运行100个Spring boot项目实例来处理服务?@Velan对第1点说,是的,通常它们在一个可以弹性伸缩的云中运行,但需要100个实例,这将是一个巨大的负载。感谢您的帮助解释@EssexBoy