做Spring Boot的盆友应该都知道,Spring Boot支持三种内嵌容器,有了这几个容器,我们就不需要打成War包再去部署,而是直接执行java -jar jar包即可启动,真是太方便了。

Tomcat

在我们使用Spring Boot开发WebApi时,会引入spring-boot-starter-web这个starter组件,其自带了Tomcat容器,

所以我们平时新建项目启动起来,会看见Tomcat相关的一些信息。

tomcat常用参数:

  • server.tomcat.uri-encoding:Tomcat 请求编码
  • server.tomcat.threads.max:Tomcat 的最大线程数
  • server.tomcat.basedir:Tomcat 运行日志和临时文件的目录。若不配置,则默认使用系统的临时目录。
  • server.tomcat.max-connections: 最大连接数
  • server.tomcat.accept-count: 超过该请求数则排队
  • server.tomcat.threads.min-spare: 最小工作空闲线程数
  • server.tomcat.max-http-form-post-size: Post数据大小

当然,还有很多其他的参数,有需要的可以了解一下

Jetty

因为spring-boot-starter-web自带了Tomcat,所以我们要使用其它的容器的话,需要将其依赖包排除掉并重新引入新容器的starter

org.springframework.boot            spring-boot-starter-web            org.springframework.boot                    spring-boot-starter-tomcat                org.springframework.boot            spring-boot-starter-jetty            2.3.3.RELEASE

我们还需要去掉原有的Tomcat配置,然后启动

常用参数:

  • server.jetty.threads.max: 最大线程数
  • server.jetty.threads.min: 最小线程数
  • server.jetty.threads.max-queue-capacity: 最大队列容量
  • server.jetty.threads.idle-timeout: 线程最大空闲时间

Undertow

使用Undertow的方式跟Jetty的使用方式一样,需要先排除掉默认依赖,再引入Undertow Starter

org.springframework.boot            spring-boot-starter-web            org.springframework.boot                    spring-boot-starter-tomcat                org.springframework.boot            spring-boot-starter-undertow            2.3.3.RELEASE

去掉其他容器的配置,启动我们的程序,就可以看到Undertow的相关信息

常用参数:

  • server.undertow.url-charset: 请求编码
  • server.undertow.threads.io: IO线程
  • server.undertow.threads.worker: 工作线程

听网友说这三个的性能是这样排名的:Undertow>Jetty>Tomcat,但是我没亲自去压测过,所以不确定其真假。这三个,只有Tomcat用的最多,Undertow也用过几次,但是项目没什么并发可言,在性能上,也没有去实际对比过,后面有机会涉及到性能优化的时候再来深究吧。

各位盆友,你们是用的哪个容器呢?

springboot 压测 50并发 线程等待_Spring Boot中三款内嵌容器的使用相关推荐

  1. springboot 压测 50并发 线程等待_线程池+CountDownLatch——高并发就是这么简单

    今天和大家分享的是:在开发服务端API时候,如何合理的运用线程池+CountDownLatch来保证API的高并发访问. 首先,作为Java开发的同学来说,java.util.concurrent并发 ...

  2. springboot @datetimeformat 标注在参数上无效_Spring Boot 中必须掌握的 45 个注解

    点关注,不迷路:持续更新Java架构相关技术及资讯热文!!! 一.SpringBoot/spring @SpringBootApplication: 包含@Configuration.@EnableA ...

  3. springboot 线程池_Spring boot 2 线程池怎么配置

    线程池 在java 中线程池,就是ThreadPoolExecutor来构造,简单看下线程池包含的方法, corePoolSize:初始化线程.线程池中保留的线程数量. maximumPoolSize ...

  4. SpringBoot 内嵌容器

    SpringBoot内置了三种servlet容器,默认的是tomcat,这三种servlet容器 tomcat,jetty 和 undertow,都被springboot集成了. SpringBoot ...

  5. python接口压测1000并发_测试工具:黑羽压测

    前言 很多朋友对性能测试有种深深的误解:认为 只要学会 使用一款 性能测试工具,点点界面,配配数据,就能做好性能测试了. 不是这样的!! 性能测试 通常 要真正做好 很不容易. 它需要测试人员: 有产 ...

  6. 全链路压测平台(Quake)在美团中的实践

    背景 在美团的价值观中,"以客户为中心"被放在一个非常重要的位置,所以我们对服务出现故障越来越不能容忍.特别是目前公司业务正在高速增长阶段,每一次故障对公司来说都是一笔非常不小的损 ...

  7. springboot jar服务器运行后无法请求_Spring Boot微服务中Chaos Monkey的应用

    有多少人从未在生产环境中遇到系统崩溃或故障?当然,你们每个人迟早都会经历它.如果我们无法避免失败,那么解决方案似乎是将我们的系统维持在永久性故障状态.Chaos Monkey - 这个概念是Netfl ...

  8. springboot事务回滚源码_Spring Boot中的事务是如何实现的

    1. 概述 一直在用SpringBoot中的@Transactional来做事务管理,但是很少想过SpringBoot是如何实现事务管理的,今天从源码入手,看看@Transactional是如何实现事 ...

  9. springboot 事务手动回滚_Spring Boot中的事务是如何实现的

    1. 概述 一直在用SpringBoot中的@Transactional来做事务管理,但是很少想过SpringBoot是如何实现事务管理的,今天从源码入手,看看@Transactional是如何实现事 ...

最新文章

  1. 其实你做的大部分工作都是浪费
  2. carbon abatement
  3. redis 双写一致性 看一篇成高手系列 一
  4. spring aop示例_Spring Profile模式示例
  5. c语言 spawn函数,我在electron程序中spawn了一个C语言程序作为子进程,我该如何与这个子进程通信?...
  6. 论文浅尝 | LightRNN:存储和计算高效的 RNN
  7. Android推荐的几本书
  8. mysql 回表 覆盖索引_mysql 14 覆盖索引+回表
  9. iPhone8带来AR新技术,AR游戏要火了吗?
  10. robots笔记以免忘记
  11. Fortran入门教程(五)——选择结构
  12. 完美解决Mac软件意外退出的方法(软件签名)
  13. iOS 蓝牙开发用到的一些格式转换
  14. android电视文件管理器,2018电视文件管理器排行榜(最新)
  15. 语音和噪声相关数据集(持续更新)
  16. macos 如何优美地打开知网caj文件 - macos 如何打开caj文件
  17. UVM设计模式 (三) 静态类、资源管理、uvm_event、uvm_*_pool、uvm_config_db、UVM_REGEX_NO_DPI
  18. 论文阅读:Generating Talking Face Landmarks from Speech
  19. 账号被盗,如何强制下线?
  20. C++数字图像处理篇之图像加马赛克

热门文章

  1. redis插件连接集群 shiro_Shiro经过Redis管理会话实现集群(转载)
  2. php 图片印章_PHP实现中文圆形印章特效_PHP
  3. PYG教程【三】对Cora数据集进行半监督节点分类
  4. java高并发(四)并发编程与线程安全
  5. 35岁程序员大厂Offer接到手软,靠的竟然是...
  6. 更高效的利用Jupyter+pandas进行数据分析,6种常用数据格式效率对比!
  7. java中浮点数的表示_java 浮点数表示法
  8. 基坑计算理论m法弹性支点法_人工冲孔轻型井点在基坑降水工程中的应用
  9. linux中查看用户组标识符,Linux用户和组管理
  10. c语言按F1键运行,C语言的编译和运行按什么键