‍作者:bug菌

简介:CSDN博客专家,C站历届博客之星Top50,/InfoQ/51CTO等社区优质创作者,全网算计8w粉+,对全部技术感兴趣,重心偏Java方向;硬核大众号「猿圈奇妙屋」,欢迎小伙伴们的加入,一同秃头,一同变强。

✍️温馨提醒:本文字数:1511字, 阅读完需:约 5 分钟

环境说明:Windows10 + Idea2021.3.2 + Jdk1.8 + SpringBoot 2.3.1.RELEASE

一、前言

    在上一篇《SpringBoot之配置Undertow容器》一文中写道:“Undertow的功能和内存运用方面都要优于 Tomcat容器”, 这一期,我就要给咱们来求证一波,口说无凭,那我就拿当前的Web项目来做为测验项目,监控工具就地取材,经过运用 JDK 自带的jvisualvm 工具,别离监控比照一下tomcat与Undertow运用前后各项目标的产生情况。

    可能还有很多小伙伴不知道jdk自带的jvisualvm怎么玩,具体我将在如下进行步骤讲解。

二、jvisualvm工具运用说明

    首要jvisualvm.exe坐落jdk装置目录下的bin文件中下,比方我的[C:\Program Files\Java\jdk1.8.0_201\bin],你们的自己找一下,然后在bin文件夹中找到[ jvisualvm.exe ],双击翻开。具体请看如下截图:

项目经理问我Tomcat 与 Undertow 怎么抉择?此文教她选

发动后的实践界面如下:

项目经理问我Tomcat 与 Undertow 怎么抉择?此文教她选

    咱们可以从运用程序中找到咱们正发动着的springboot运用,比方这是我的项目运用:com.example.demo.DemoApplication,找到应该选中双击进入,可以看到同界面右半部分会弹出运用程序等相关信息。

项目经理问我Tomcat 与 Undertow 怎么抉择?此文教她选

为此,监控工具就准备妥当了,接下来测验正式开端。

三、测验比照

1、Tomcat容器测验

    首要咱们把项目运用容器切换为Tomcat。咱们先来看看,Tomcat容器在相同项目环境下运行中,堆内存大约运用了41M,线程活动数:29,实践峰值:33。

项目经理问我Tomcat 与 Undertow 怎么抉择?此文教她选
    如上监控截图还可以看到cpu运用为0,那是项目接口没有被恳求,接着我模仿项目被张狂恳求的情形(同一接口调用20次)。

项目运行各方面指数会产生怎么改变?咱们请仔细看:

项目经理问我Tomcat 与 Undertow 怎么抉择?此文教她选

    当发送很多恳求时,剖析如上监控数据,可以得知,项目运行最大cpu运用占比为1.1%,堆内存运用大约75M,前后呈现断崖式跌落。

    接着咱们来测验一下运用Undertow容器,看看它的体现又怎么。

2、Undertow容器测验

    我先把tomcat容器切换成轻量级 Undertow,然后从头翻开监控工具,咱们请看。

项目经理问我Tomcat 与 Undertow 怎么抉择?此文教她选

    它大约堆内存运用了138M,线程活动数:20,实践峰值:23。这仍是在运用不杂乱的情况下,大型运用出入会更大。

    为确保同实验场景,我也是同一接口20次恳求,进行接口调用模仿,看看Undertow的体现怎么?请咱们敬请期待。

项目经理问我Tomcat 与 Undertow 怎么抉择?此文教她选

    当发送很多恳求时,剖析监控各项数据,可以得知,最大cpu运用占比30%,堆内存运用大约60M,线程活数丝毫不动,发现堆内存的占用增加不明显。

3、实验定论

    经过实验结果数据剖析比照,发现项目运用Undertow容器的情况下,无论是堆内存运用情况仍是线程运用情况,明显比运用tomcat容器下更胜一筹;但在并发量不高的情况下 , 也发现Tomcat与undertow的吞吐量区别上看上去改变不大。

四、总结

    在SpingBoot项目中,咱们既可以运用Tomcat作为Http服务,也可以用Undertow来替代Tomcat;关于Jetty,看场景挑选,若是面临长连接、即时通讯等聊天场景为主,那首选Jetty容器,Jetty在这方面体现更佳,总归,Jetty的功能和内存运用方面都优于Tomcat,弱于Undertow。

    其次关于Undertow在高并发事务场景中,功能优于Tomcat容器(测验数据肉眼可见)。

    所以,关于高并发项目,首选引荐运用Undertow,你会发现你的系统功能会得到很大的提高。

    … …

    ok,以上便是我这期的全部内容啦,如果还想学习更多,你可以看看我的往期热文引荐哦,每天堆集一个奇淫小知识,日积月累下去,你一定能成为令人敬仰的大佬。

    「赠人玫瑰,手留余香」,咱们下期拜拜~~

文末

    我是bug菌,一名想走出大山改变命运的程序猿。接下来的路还很长,都等待着咱们去打破、去应战。来吧,小伙伴们,咱们一同加油!未来皆可期,fighting!

项目经理问我Tomcat 与 Undertow 怎么抉择?此文教她选

感谢认真读完我博客的铁子萌,在这里呢送给咱们一句话,不论你是在职仍是在读,绝对终身受用。
时间警醒自己: 抱怨没有用,全部靠自己

想要过更好的日子,那就要逼着自己变的更强,日子加油。

本文正在参与「金石计划」