前言

默认情况下,Spring Boot 使用 Tomcat 来作为内嵌的 Servlet 容器
可以将 Web 服务器切换到 Undertow 来提高应用性能。Undertow 是一个采用 Java 开发的灵活的高性能 Web 服务器,提供包括阻塞和基于 NIO 的非堵塞机制。Undertow 是红帽公司的开源产品,是 Wildfly 默认的 Web 服务器。

一、测试吞吐量工具
apache-jmeter-5.3.zip

二、文件目录

三、文件内容
1.AppMyBatis04.java

package com.zhongguancun;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;@MapperScan("com.zhongguancun.mapper")
@SpringBootApplication
public class AppMyBatis04 {public static void main(String[] args) {SpringApplication.run(AppMyBatis04.class, args);}
}

2.IndexController.java

package com.zhongguancun.controller;import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;@RestController
public class IndexController {@RequestMapping("/index")public String indexDev() {//打开次注释可以后台看到访问痕迹
//      System.out.println("index + 1");return "index";}}

3.pom.xml

<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><groupId>com.zhongguancun</groupId><artifactId>zhongguancun_springboot_mybatis_pageHelper</artifactId><version>0.0.1-SNAPSHOT</version><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.0.0.RELEASE</version></parent><dependencies><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter</artifactId></dependency><!-- 测试 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency><dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>1.1.1</version></dependency><!-- mysql 依赖 --><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId></dependency><!-- springboot-web组件 --><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><!-- 引入undertow --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-undertow</artifactId></dependency><!-- springboot 整合 pagehelper --><dependency><groupId>com.github.pagehelper</groupId><artifactId>pagehelper-spring-boot-starter</artifactId><version>1.2.5</version></dependency><dependency><groupId>org.apache.commons</groupId><artifactId>commons-lang3</artifactId></dependency></dependencies></project>

四、效果测试
运行项目

测试工具配置:




1.Undertow吞吐量

吞吐量8000多

2.Servlet吞吐量
停掉项目 修改pom.xml文件
注释掉undertow

<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><groupId>com.zhongguancun</groupId><artifactId>zhongguancun_springboot_mybatis_pageHelper</artifactId><version>0.0.1-SNAPSHOT</version><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.0.0.RELEASE</version></parent><dependencies><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter</artifactId></dependency><!-- 测试 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency><dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>1.1.1</version></dependency><!-- mysql 依赖 --><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId></dependency><!-- springboot-web组件 --><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><!-- 引入undertow -->
<!--         <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-undertow</artifactId></dependency> --><!-- springboot 整合 pagehelper --><dependency><groupId>com.github.pagehelper</groupId><artifactId>pagehelper-spring-boot-starter</artifactId><version>1.2.5</version></dependency><dependency><groupId>org.apache.commons</groupId><artifactId>commons-lang3</artifactId></dependency></dependencies></project>

运行项目
然后运行测试

Servlet吞吐量5000多

总结

服务器名称 第一次运行 第二次运行 第三次运行 平均值
Tomcat 4773 5194 5334.7 5100
Undertow 6666 6373 6451 6496

SpringBoot2.0之Servlet容器变成Undertow相关推荐

  1. SpringBoot(1)---SpringBoot2.0技术视频教程

    SpringBoot2.0技术视频教程 01.第一节-SpringBoot2.0课程介绍 02.第二节-为什么要用SpringBoot 03.第三节-SpringCloud与SpringBoot关系 ...

  2. SpringBoot 配置嵌入式Servlet容器(tomcat,jetty,undertow)

    SpringBoot 默认打包方式为jar包,且可以自启动,就是因为它内嵌了Servlet容器. SpringBoot 默认使用嵌入式Servlet容器,SpringBoot 2.2.5 默认是 To ...

  3. 图解WildFly8之Servlet容器Undertow剖析

    Undertow简介 Undertow 是RedHat(红帽公司)的开源产品,采用 Java 开发的灵活的高性能 Web 服务器,提供包括阻塞和基于 NIO 的非堵塞机制. WildFly8的默认Se ...

  4. 这是一篇优雅的Springboot2.0使用手册

    最近再研究springboot的原理?颇有收获,现在让我分享一下springboot如何使用吧~ 想要解锁更多新姿势?请访问我的博客 啥是Springboot 和书上理解的不同,我认为Springbo ...

  5. SpringBoot配置嵌入式Servlet容器

    SpringBoot默认使用的是Tomcat作为嵌入式的Servlet容器,那么肯定会和外置的Tomcat有区别,那么就这些区别来谈一谈SpringBoot中对于容器的一些配置操作 如何定制和修改Se ...

  6. 【Spring Boot 2.0学习之旅-15】SpringBoot2.0响应式编程

    SpringBoot2.0响应式编程 一.SpringBoot2.0 响应式编程基础知识 Spring WebFlux官方文档 SpringBoot WebFlux文档 1.什么是Spring Web ...

  7. SpringBoot2.0源码解析一

    第一章:系统总览 第一节:导学 根据慕课网小马哥springboot2.0深度实践,边学边记 学习目的 SpringBoot如何基于SpringFramework 逐步走向自动装配? SpringAp ...

  8. SpringBoot之配置嵌入式Servlet容器

    1.概述 文章目录 1.概述 2.如何修改SpringBoot的默认配置 3.定制和修改Servlet容器的相关配置 4.注册Servlet三大组件 5.替换为其他嵌入式Servlet容器 6.嵌入式 ...

  9. 零基础快速入门SpringBoot2.0教程 (二)

    一.SpringBoot2.x使用Dev-tool热部署简介:介绍什么是热部署,使用springboot结合dev-tool工具,快速加载启动应用官方地址:https://docs.spring.io ...

最新文章

  1. Maven安装中央仓库没有的jar到本地
  2. 08年美国最值得信赖20大公司排行 谷歌落榜
  3. PL/SQL复合数据类型
  4. meta viewport相关
  5. libevent简介和使用
  6. dj鲜生-19-登陆功能-利用内置认证体系
  7. java volatile 基本类型_Java中Volatile关键字详解(转)
  8. 书评 – 程序员经典读物(2)
  9. PHP怎么接收字符串,求大神救命!!php接收到是空的字符串
  10. 知识图谱最新研究综述
  11. 工控网络安全学习路线
  12. 2021爱分析·云计算厂商全景报告
  13. 百度推广创意怎么写?百度推广创意十大秘籍
  14. 使用visio如何快速生成一个网格状图案,文档技巧!
  15. 近期缺货的晶振厂家国内替代VS国外
  16. 离线安装.Net Framework 3.5
  17. 12 带音视频、多媒体、2D3D显示加速的嵌入式类芯片介绍
  18. 关于编程,鲜为人知的真相
  19. 计算机网络 IP多播
  20. 普及下电信直连、CN2(GIA)、本土运营商

热门文章

  1. PVE系统+NAS+WEB 折腾笔记 :3-安装黑群晖
  2. pythonvue自动化_Genesis
  3. 年产10万吨1,4-丁二醇项目的初步设计-文献综述
  4. matlab 蒙特卡洛
  5. 2022-2028年中国精装房行业发展模式分析及未来前景规划报告
  6. 服装CAD软件测试初学者,如何自学服装cad
  7. findChessboardCorners函数学习笔记
  8. 京东代挂最新拉库大全 2022年01月7日更新
  9. idea使用阿里镜像下载失败
  10. Tekla材料排板采购工具