Jetty、Undertow容器及war包部署到外置Tomcat容器

上一节中我们了解到在SpringBoot项目中webServer默认支持的嵌入式容器是Tomcat,还可以切换到Jetty、Undertow。本节我们就将Tomcat切换到jetty、undertow容器。由于SpringBoot将Tomcat作为默认的应用容器,因此在使用Jetty和Undertow容器之前要先把Tomcat的jar包排除掉。<dependency>    <groupId>org.springframework.boot</groupId>    <artifactId>spring-boot-starter-web</artifactId>    <exclusions>        <exclusion>            <groupId>org.springframework.boot</groupId>            <artifactId>spring-boot-starter-tomcat</artifactId>        </exclusion>    </exclusions></dependency>12345678910复制代码类型:[java]使用Jetty容器:<dependency>    <groupId>org.springframework.boot</groupId>    <artifactId>spring-boot-starter-jetty</artifactId></dependency>1234复制代码类型:[java]使用Undertow容器:<dependency>    <groupId>org.springframework.boot</groupId>    <artifactId>spring-boot-starter-undertow</artifactId></dependency>1234复制代码类型:[java]关于pom.xml文件配置,我们需要知道以上三者的优先级顺序是:Tomcat>Jetty>Undertow使用Jetty、Undertow时,必须将Tomcat容器移除掉使用Undertow时,需要将Jetty的依赖移除掉,因为Jetty的优先级高于Undertow使用Jetty时,Undertow的依赖可以不移除配置参数在官方文档编号11中可以找到关于Jetty、Undertow的配置参数:https://docs.spring.io/spring-boot/docs/current/reference/html/application-properties.html#application-properties.server常用配置参数Jettyserver.jetty.threads.acceptors要使用的接受器线程数,默认值为-1server.jetty.threads.selectors要使用的选择器线程数,默认值为-1server.jetty.threads.min工作线程池最小线程数量,默认值为8server.jetty.threads.max工作线程池最大线程数量,默认值为200Undertowserver.undertow.threads.io创建的 I/O 线程数。默认值来自可用处理器的数量server.undertow.threads.worker工作任务线程数。默认值是 I/O 线程数的 8 倍server.undertow.url-charset用于url解码的字符集,默认值为UTF-8在application.yml文件中的写法Jettyserver:  port: 8888  jetty:    # 要使用的接受器线程数,默认值为-1    acceptors: -1    # 要使用的选择器线程数,默认值为-1    selectors: -1    # 工作线程池最小线程数量,默认值为8    min-threads: 8    # 工作线程池最大线程数量,默认值为200    max-threads: 2001234567891011复制代码类型:[java]Undertowserver:  port: 8888  undertow:    # 创建的 I/O 线程数。默认值来自可用处理器的数量    io-threads: 5    # 工作任务线程数。默认值是 I/O 线程数的 8 倍    worker-threads: 40    # 用于url解码的字符集,默认值为UTF-8    url-charset: UTF-8123456789复制代码类型:[java]Undertow的性能和内存使用方面都优于Tomcat,在高并发系统中,Tomcat相对来说比较弱。在相同的机器配置下,模拟相等的请求数,Undertow在性能和内存使用方面都是最优的。在之前我们所有的应用代码都是用jar包的方式去运行的,下面我们来学习如何打war包。为了方便演示,重新创建一个SpringBoot项目。重新创建的过程与之前想同,需要注意的是打包方式这次直接选择war包:新的项目创建好后,在com.example.demo文件夹下创建controller文件夹并在其中创建TemplateController.javapackage com.example.demo.controller;import org.springframework.web.bind.annotation.GetMapping;import org.springframework.web.bind.annotation.RestController;@RestControllerpublic class TemplateController {    @GetMapping("/template")    public String test(String name) {        return "Hello " + name;    }}123456789101112复制代码类型:[java]之后在pom.xml中的build代码段添加应用最终构建打包的名称:<finalName>family</finalName>1复制代码类型:[java]在idea下方的Terminal中编写命令:mvn clean package1复制代码类型:[java]打包结果将存储在项目的target目录下面,将war包移动到Tomcat的webapps目录中。在tomcat的bin目录下执行startup.sh(linux)/startup.bat(windows)。由于Tomcat在占用的是8080端口,所以在浏览器进行测试时输入的链接应为:http://localhost:8080/family/template?name=world得到返回结果。

(0)

相关推荐