SpringBoot使用Undertow替换tomcat
阿里云国内75折 回扣 微信号:monov8 |
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6 |
什么是Undertow
Undertow 是一个采用 Java 开发的灵活的高性能 Web 服务器提供包括阻塞和基于 NIO 的非堵塞机制。Undertow 是红帽公司的开源产品是 Wildfly 默认的 Web 服务器。
Undertow 提供一个基础的架构用来构建 Web 服务器这是一个完全为嵌入式设计的项目提供易用的构建器 API完全兼容 Java EE Servlet 4 和低级非堵塞的处理器。
Undertow 设计为完全可嵌入的并具有易于使用的流畅的 Builder API。 Undertow 的生命周期完全由嵌入应用程序控制。
Undertow对比tomcat
undertow在高并发业务场景中性能优于tomcat
1高性能在多款同类产品的压测对比中高并发情况下表现出色。
2Servlet4.0支持它提供了对Servlet4.0的支持。
3Web Socket完全支持,包含JSR-356,用以满足Web应用巨大数量的客户端。
4内嵌式它不需要容器只需要通过api即可快速搭建Web服务器。
5灵活性交由链式Handler配置和处理请求可以最小化按需加载模块无须加载多余功能。
6轻量级它是一个内嵌Web服务器由两个核心jar包组成。
集成Undertow
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.7.4</version>
</parent>
<groupId>com.konne</groupId>
<artifactId>push-demo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>push-demo</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<!-- 移除掉默认支持的 Tomcat -->
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-undertow</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
启动