首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
AI 模拟面试
简历
求职
学习
基础学习课
实战项目课
求职辅导课
专栏&文章
竞赛
我要招人
发布职位
发布职位、邀约牛人
更多企业解决方案
AI面试、笔试、校招、雇品
HR免费试用AI面试
最新面试提效必备
登录
/
注册
30303021
大连交通大学 Java
发布于辽宁
关注
已关注
取消关注
@Java三段:
京东面试:SpringBoot同时可以处理多少请求?
Spring Boot 作为 Java 开发中必备的框架,它为开发者提供了高效且易用的开发工具,所以和它相关的面试题自然也很重要,咱们今天就来看这道经典的面试题:SpringBoot同时可以处理多少个请求 ?准确的来说,Spring Boot 同时可以处理多少个请求,并不取决于 Spring Boot 框架本身,而是取决于其内置的 Web 容器(因为 Web 容器的行为,决定了 Spring Boot 的行为,所以咱们姑且认为两个问题的回答是一样的)。1.Web三大容器Web 容器目前也是三分天下,市面上最常见的三种 Web 容器分别是:Tomcat、Undertow 和 Jetty,其中 Tomcat 为 Spring Boot 框架默认的 Web 容器。它们三者的区别如下:Tomcat 是 Apache 软件基金会下的开源项目,是最广泛使用的 Servlet 容器之一,完全实现了 Java Servlet 和 JavaServer Pages(JSP)规范。它不仅是一个 Servlet 容器,也是一个轻量级的应用服务器,尽管相比其他轻量级服务器,Tomcat 被认为是稍微重一些的。Tomcat 支持众多的企业级特性,如 SSL、连接池等,适合运行大型的、复杂的企业级应用。它的稳定性和成熟度经过了多年的企业级应用验证,因此在很多企业中作为首选的 Web 容器。Undertow 是 Red Hat(红帽公司)开发的一个灵活的、高性能的 Web 服务器和反向代理服务器,它是 WildFly 应用服务器的默认 Web 容器。Undertow 设计上注重低内存占用和高并发处理能力,尤其擅长处理大量的短连接场景,比如 RESTful API 服务。Undertow 支持 Servlet 3.1、WebSocket以及非阻塞 IO(NIO),并且是支持 HTTP/2 协议的现代服务器之一。它的设计理念在于提供一个模块化、可嵌入式的解决方案,易于集成到现有的系统中,同时也适合微服务架构。Jetty 是一个开源的、轻量级的 Web 服务器和 Servlet 容器,由 Eclipse 基金会维护。它以其可嵌入式、高度可配置性著称,常用于需要快速启动和轻量级部署的场景,比如开发阶段、测试环境或轻量级应用。Jetty 也支持 Servlet 规范和 WebSocket,且同样基于 NIO,使得它在处理大量并发连接时表现出色。Jetty 设计上强调灵活性和可扩展性,易于通过 API 定制以满足特定需求,因此在云环境、持续集成、DevOps 等领域很受欢迎。总的来说,Tomcat 因其成熟稳定和企业级特性适用于大型应用;Undertow 以高性能和低内存占用见长,特别适合处理高并发短连接场景;而 Jetty 则以轻量、灵活、易于嵌入为特点,适合快速开发和轻量级部署。2.最大连接数和最大等待数以 Spring Boot 框架默认的 Web 容器 Tomcat 为例,它能够同时处理多少个请求,其实是在 Spring Boot 框架中的 spring-configuration-metadata.json 文件中配置着,如下图所示:打开此文件,搜索“server.tomcat.max-connections”(Tomcat 最大连接数)会得到以下结果:也就是说,默认情况下 Tomcat 允许的最大连接数是 8192(=8*1024)个。那么,此时有人可能会认为,默认情况下 Spring Boot 同时能处理的请求数应该是 8192,如果你也是这样认为,那你就错了。为什么呢?因为,虽然 Tomcat 可以允许最大的连接数是 8192,但是 Tomcat 还有一个最大等待数,也就是说,如果达到了 8192 之后,还有一个等待队列可以存放请求的连接,所以,Spring Boot 可以同时处理多少个连接,等于 Tomcat 的最大连接数加 Tomcat 的最大等待数。那么,最大等待数是多少呢?我们继续在 spring-configuration-metadata.json 文件中,搜索“server.tomcat.accept-count”(Tomcat 最大等待数),搜索结果如下图所示:也就是说,默认情况下,Tomcat 最大等待数为 100 个。3.同时处理请求数所以得出结论:默认情况下 Spring Boot 能够同时处理的请求数=最大连接数(8192)+最大等待数(100),结果为 8292 个。当然,这两个值是可以在 Spring Boot 配置文件中修改的,如下配置所示:server: tomcat: max-connections: 2000 # 最大连接数 accept-count: 200 # 最大等待数4.扩展知识:设置Web容器Spring Boot 框架如何设置 Web 容器为 Jetty 或 Undertow 呢?接下来,我们来看一下。4.1 设置容器为Jetty要设置 Spring Boot 框架的 Web 容器为 Jetty,只需要修改 pom.xml 文件即可,如下配置所示:<dependencies> <!-- Spring Boot Starter Web 但排除Tomcat --> <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> <!-- 添加Jetty起步依赖 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jetty</artifactId> </dependency></dependencies>也就是说,只需要将默认的 tomcat 排除掉,添加 jetty 的依赖即可。4.2 设置容器为Undertow要设置 Spring Boot 框架的 Web 容器为 Undertow 的思路和上面 Jetty 的实现思路相同,只需要修改 pom.xml 文件即可,如下配置所示:<dependencies> <!-- Spring Boot Starter Web 但排除Tomcat --> <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> <!-- 添加Undertow起步依赖 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-undertow</artifactId> </dependency></dependencies>课后思考为什么 Tomcat 默认的最大连接数为 8192 呢?Jetty 和 Undertow 同时又能处理多少个请求呢?参考 & 鸣谢javacn.site
点赞 9
评论 5
全部评论
推荐
最新
楼层
暂无评论,快来抢首评~
相关推荐
不愿透露姓名的神秘牛友
今天 17:46
拼多多这个是提前批还是正式批
暑期就挂了,秋招还有机会吗
投递拼多多集团-PDD等公司10个岗位
点赞
评论
收藏
分享
不愿透露姓名的神秘牛友
07-10 11:48
26届7月找实习感觉这辈子真是有了...
主包是26届,组里管的严,上半年没能去实习,也错过了找暑期实习。之前有过两端title查无此名的实习,主包于6月底开始找日常,每天勤勤恳恳的投简历,但除了微小厂没人理我,唯一理我的大厂是字节,在实习僧上秒标不合适主包不太考虑国央企和体制内,找不到实习主包秋招是不是完蛋了...
点赞
评论
收藏
分享
05-26 13:22
西安电子科技大学 算法工程师
今年就业形势怎么样?
大家觉得难不难呢?
强大的马里奥:
不太可能,我校计算机硕士就业率99%
点赞
评论
收藏
分享
07-09 11:53
山西农业大学 硬件产品经理
果然是提前批,能免的都免了啊
已经有26届的同学陆续收到提前批的反馈了,除了有些技术岗有笔试以外,真的提前批再招聘流程上能免的都免了,好多根本不用经历群面...所以真的建议有准备的26届同学能投就多投,早投早出结果,如果闯进面试,就要认真对待,哪怕没有获得offer,也会留下面评,到时候正式批的时候也可以继续投!
点赞
评论
收藏
分享
评论
点赞成功,聊一聊 >
点赞
收藏
分享
评论
提到的真题
返回内容
全站热榜
更多
1
...
月薪一万五,天天都喊苦
3385
2
...
两年后重看秋招——后悔选择读研,可到底该怎么做?
3094
3
...
秋招公司情报局,分享线索得牛币💰
2914
4
...
字节客户端一面
2734
5
...
大厂实习恐怖日常
2148
6
...
一个三无废物985硕士的求救帖!Help
1856
7
...
入职云智一个月~希望消除大家对云智的误解
1846
8
...
第一次面试就是字节!
1759
9
...
手机厂工作一年了,给想进手机行业的兄弟们写点建议
1748
10
...
百度提前批一面凉经
1714
创作者周榜
更多
正在热议
更多
#
如何提高实习转正率?
#
1419次浏览
28人参与
#
如果可以,你希望哪个公司来捞你
#
99711次浏览
428人参与
#
大厂面试初体验
#
1952次浏览
30人参与
#
leader认为你工作不认真怎么办
#
30261次浏览
135人参与
#
我的国央企投递进展
#
46351次浏览
289人参与
#
国企是理工四大天坑的最好选择吗
#
13471次浏览
94人参与
#
你遇到过哪些神仙同事
#
100002次浏览
722人参与
#
招聘要求与实际实习内容不符怎么办
#
112652次浏览
770人参与
#
机械人,你被简历秒挂的企业有哪些?
#
42736次浏览
281人参与
#
五一之后,实习真的很难找吗?
#
78230次浏览
514人参与
#
如果公司给你放一天假,你会怎么度过?
#
16809次浏览
128人参与
#
三一重工求职进展汇总
#
14793次浏览
67人参与
#
总结:哪家公司面试体验感最差
#
60931次浏览
276人参与
#
如果重来一次你还会读研吗
#
176635次浏览
1785人参与
#
投递几十家公司,到现在0offer,大家都一样吗
#
245876次浏览
1789人参与
#
找工作时的取与舍
#
80273次浏览
567人参与
#
机械人,说说你的烦心事
#
69434次浏览
839人参与
#
通信/硬件公司求职体验
#
124159次浏览
865人参与
#
工作一周年分享
#
31040次浏览
184人参与
#
我和mentor的爱恨情仇
#
58443次浏览
350人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务