一,undertow介绍

1,undertow简介:

Undertow是RedHAT红帽公司开源的产品,采用Java开发,是一款灵活,高性能的web服务器,提供了NIO的阻塞/非阻塞API,也是Wildfly的默认Web容器。在javaweb容器的世界里,Tomcat和jetty是大众熟知的,undertow目前逐步进入大众的视角,它是一款能和tomcat媲美的神器,在性能方面吊打tomcat。目前Undertow已经成为springboot 默认集成的三大容器之一。

2,undertow特点:

undertow在高并发业务场景中,性能优于tomcat

1,高性能,在多款同类产品的压测对比中,高并发情况下表现出色。

2,Servlet4.0支持,它提供了对Servlet4.0的支持。

3,Web Socket完全支持,包含JSR-356,用以满足Web应用巨大数量的客户端。

4,内嵌式,它不需要容器,只需要通过api即可快速搭建Web服务器。

5,灵活性,交由链式Handler配置和处理请求,可以最小化按需加载模块,无须加载多余功能。

6,轻量级,它是一个内嵌Web服务器,由两个核心jar包组成。

3,springboot集成的web服务器

2.2.13.RELEASE springboot版本默认支持的三种Servlet容器版本如下

2.2.13.RELEASE springboot版本(官网提供的)

Web服务器

集成版本

Undertow

2.0.33.Final

tomcat

9.0.41

jetty

4.1.17

二,实验验证

实验准备材料如下:

1,springboot版本

<parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.7.2</version>
</parent>

2,测试类的controller

@RequestMApping("/reflect")
@ResponseBody
public void reflect() {Object object = springReflectionUtil.springInvokeMethod("reflectService", "handleUser");if (object instanceof User) {User invoke = (User)object;}
}

3,springboot默认就内嵌了tomcat

在pom文件中引入以下依赖

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId>
</dependency>

4,项目整合undertow

在pom文件中引入以下依赖

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-undertow</artifactId>
</dependency>
<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>

5,项目整合jetty

在pom文件中引入以下依赖

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-jetty</artifactId>
</dependency>
<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>

6,jvm配置

-server
-Xms4096m
-Xmx4096m
-XX:+UseG1GC

7,用jmeter压测

tomcat,jetty,undertow分别模拟10万请求,查看各自的吞吐量数据

场景一:100个线程 循环1000次请求测试接口,模拟10万请求

场景二:1000个线程 循环100次请求测试接口,模拟10万请求

8,实验结果

通过压测结果图统计如下

100线程循环1000次(吞吐量/sec)

第一次

第二次

第三次

平均值

Tomcat

1119.7

1497.5

1490.5

1369.2

jetty

1363.7

1429.3

1390.5

1394.5

undertow

1607.9

1467.3

1545.6

1540.3

1000线程循环100次(吞吐量/sec)

第一次

第二次

第三次

平均值

Tomcat

1212.2

1088.4

1107.5

1136.0

jetty

1225.9

1222.6

1186.3

1211.6

undertow

1383.7

1468.1

1434.2

1428.7

三,实验结论

100个线程循环1000次,都用默认配置,没有调配置参数情况下,tomcat的吞吐量平均是每秒1369.2,jetty的吞吐量平均是1394.5,undertow的吞吐量平均是每秒1540.3

1000个线程循环100次,都用默认配置,没有调配置参数情况下,tomcat的吞吐量平均是每秒1136.0,jetty的吞吐量是1211.6,undertow的吞吐量是每秒1428.7

可以看出,默认配置情况下,undertow的吞吐量领先于jetty和tomcat,表现更优异

undertow>jetty>tomcat

吊打tomcat的高性能web服务器undertow相关推荐

  1. Nginx高性能Web服务器实战教程PDF

    网站 更多书籍点击进入>> CiCi岛 下载 电子版仅供预览及学习交流使用,下载后请24小时内删除,支持正版,喜欢的请购买正版书籍 电子书下载(皮皮云盘-点击"普通下载" ...

  2. WildFly8(JBoss)默认web服务器-------Undertow

    Java微服务框架之Undertow 一.Undertow简介: Undertow 是红帽公司(RedHat)的开源产品,是 WildFly8(JBoos) 默认的 Web 服务器. 官网API给出一 ...

  3. nginx高性能WEB服务器系列之九--nginx运维故障日常解决方案

    nginx系列友情链接: nginx高性能WEB服务器系列之一简介及安装 https://www.cnblogs.com/maxtgood/p/9597596.html nginx高性能WEB服务器系 ...

  4. 分享关于搭建高性能WEB服务器的一篇文章

    这篇文章主要介绍了Centos5.4+Nginx-0.8.50+UWSGI-0.9.6.2+Django-1.2.3搭建高性能WEB服务器的相关资料,需要的朋友可以参考下(http://m.0813s ...

  5. LEMP构建高性能WEB服务器(第三版)

    LEMP 自动化编译脚本下载:http://docs.linuxtone.org/autoinstall/ (定期更新,欢迎多测试,找bug) 介绍参考:http://bbs.linuxtone.or ...

  6. Linux下Tomcat与Apache Web服务器的整合

    原文:http://os.51cto.com/art/200709/57327.htm ◆1.引言 基于Web技术的Internet/Intranet近年来已经得到了广泛的应用,Intranet是以T ...

  7. nginx高性能WEB服务器系列之七--nginx反向代理

    nginx系列友情链接: nginx高性能WEB服务器系列之一简介及安装 https://www.cnblogs.com/maxtgood/p/9597596.html nginx高性能WEB服务器系 ...

  8. 服务器后端开发系列——《实战Nginx高性能Web服务器》

    1.高性能Web服务器Nginx的配置与部署研究(1)Nginx简介及入门示例 内容:概述Nginx的背景知识和简单的入门实例. 2.高性能Web服务器Nginx的配置与部署研究(2)Nginx入门级 ...

  9. Nginx高性能Web服务器详解

    Nginx高性能Web服务器详解 1. 什么是Nginx 1.1 优点 1.2 缺点 2. Nginx负载均衡策略 2.1 轮询策略 2.2 加权轮询策略 2.3 IP hash策略 3. 常用指令 ...

最新文章

  1. 用漫画了解 Linux 内核到底长啥样
  2. mysql 存储过程声明式游标_Mysql 存储过程中使用游标循环读取临时表
  3. 七种Vue3传值方式
  4. c语言搜索关键字吗,c语言-以关键字搜索程序
  5. Linux中/proc目录下文件详解(二)
  6. 字典常用的方法(内建函数)
  7. 每个人都有自己的秘密
  8. 【转】刨根究底字符编码之十五——UTF-32编码方式
  9. 桶排序/Bucket Sort
  10. php垂直对齐,CSS垂直对齐不起作用的原因及解决方法
  11. 敏捷开发系列学习总结(17)——团队需要Scrum Master做这六件事
  12. Oracle18C RPM安装介绍
  13. ASP.NET MVC5+EF6+EasyUI 后台管理系统(45)-工作流设计-设计步骤
  14. Posix线程编程指南(2)
  15. 在线教育工具—白板系统的迭代1——bug监控排查
  16. UEFI开发探索31–鼠标GUI构建
  17. 计算机辅助绘图包括,计算机辅助绘图实用教程
  18. RPA案例 | 电商使用超自动化平台提升运营精细化
  19. mysql new 与old_mysql触发器new和old区别 阿星小栈
  20. Excel中建立数据透视表,想用计算字段功能,但是该选项灰色无法点击,怎么办?

热门文章

  1. 公众号客服消息超过48小时_免费模板消息群发的方法,在这里!
  2. OpenGL 相关的理论
  3. [xueqi]吃着榨菜,轻松搞下漏洞百出的湾湾站
  4. 屏幕刷新机制小结(九)
  5. 苹果电脑可以装windows系统吗_Linux系统安装Windows软件? 通过这个工具可以做到...
  6. Windows Workflow Foundation(一)
  7. 利用搜狗抓取微信公众号文章
  8. 【java-调用摄像头进行截屏与保存-实例篇1-0716】
  9. 【备忘】【不定时更新】那些有用有趣的网站君们~~
  10. Hive数据仓库数据分析