SpringBoot2.0之Servlet容器变成Undertow
前言
默认情况下,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相关推荐
- SpringBoot(1)---SpringBoot2.0技术视频教程
SpringBoot2.0技术视频教程 01.第一节-SpringBoot2.0课程介绍 02.第二节-为什么要用SpringBoot 03.第三节-SpringCloud与SpringBoot关系 ...
- SpringBoot 配置嵌入式Servlet容器(tomcat,jetty,undertow)
SpringBoot 默认打包方式为jar包,且可以自启动,就是因为它内嵌了Servlet容器. SpringBoot 默认使用嵌入式Servlet容器,SpringBoot 2.2.5 默认是 To ...
- 图解WildFly8之Servlet容器Undertow剖析
Undertow简介 Undertow 是RedHat(红帽公司)的开源产品,采用 Java 开发的灵活的高性能 Web 服务器,提供包括阻塞和基于 NIO 的非堵塞机制. WildFly8的默认Se ...
- 这是一篇优雅的Springboot2.0使用手册
最近再研究springboot的原理?颇有收获,现在让我分享一下springboot如何使用吧~ 想要解锁更多新姿势?请访问我的博客 啥是Springboot 和书上理解的不同,我认为Springbo ...
- SpringBoot配置嵌入式Servlet容器
SpringBoot默认使用的是Tomcat作为嵌入式的Servlet容器,那么肯定会和外置的Tomcat有区别,那么就这些区别来谈一谈SpringBoot中对于容器的一些配置操作 如何定制和修改Se ...
- 【Spring Boot 2.0学习之旅-15】SpringBoot2.0响应式编程
SpringBoot2.0响应式编程 一.SpringBoot2.0 响应式编程基础知识 Spring WebFlux官方文档 SpringBoot WebFlux文档 1.什么是Spring Web ...
- SpringBoot2.0源码解析一
第一章:系统总览 第一节:导学 根据慕课网小马哥springboot2.0深度实践,边学边记 学习目的 SpringBoot如何基于SpringFramework 逐步走向自动装配? SpringAp ...
- SpringBoot之配置嵌入式Servlet容器
1.概述 文章目录 1.概述 2.如何修改SpringBoot的默认配置 3.定制和修改Servlet容器的相关配置 4.注册Servlet三大组件 5.替换为其他嵌入式Servlet容器 6.嵌入式 ...
- 零基础快速入门SpringBoot2.0教程 (二)
一.SpringBoot2.x使用Dev-tool热部署简介:介绍什么是热部署,使用springboot结合dev-tool工具,快速加载启动应用官方地址:https://docs.spring.io ...
最新文章
- Maven安装中央仓库没有的jar到本地
- 08年美国最值得信赖20大公司排行 谷歌落榜
- PL/SQL复合数据类型
- meta viewport相关
- libevent简介和使用
- dj鲜生-19-登陆功能-利用内置认证体系
- java volatile 基本类型_Java中Volatile关键字详解(转)
- 书评 – 程序员经典读物(2)
- PHP怎么接收字符串,求大神救命!!php接收到是空的字符串
- 知识图谱最新研究综述
- 工控网络安全学习路线
- 2021爱分析·云计算厂商全景报告
- 百度推广创意怎么写?百度推广创意十大秘籍
- 使用visio如何快速生成一个网格状图案,文档技巧!
- 近期缺货的晶振厂家国内替代VS国外
- 离线安装.Net Framework 3.5
- 12 带音视频、多媒体、2D3D显示加速的嵌入式类芯片介绍
- 关于编程,鲜为人知的真相
- 计算机网络 IP多播
- 普及下电信直连、CN2(GIA)、本土运营商