首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
AI 模拟面试
简历
求职
学习
基础学习课
实战项目课
求职辅导课
专栏&文章
竞赛
我要招人
发布职位
发布职位、邀约牛人
更多企业解决方案
AI面试、笔试、校招、雇品
HR免费试用AI面试
最新面试提效必备
登录
/
注册
aqqqqwq
门头沟学院 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
全部评论
推荐
最新
楼层
暂无评论,快来抢首评~
相关推荐
07-27 08:53
蚌埠坦克学院 嵌入式软件开发
嵌入式应届生面试其实不难,关键在于基础与编程功底
每年毕业季,总有不少电子、通信、自动化、计算机专业的同学,开始走上找嵌入式岗位的面试之路。但说起“嵌入式面试”,不少人第一反应就是:难、抽象、偏底层、看运气。其实,这种恐惧大可不必。对于大多数公司来说,应届生的嵌入式面试考察内容,并没有大家想象得那么“玄学”,更多是看你有没有扎实的基本功和编程能力。全网最全面的嵌入式八股文:https://www.nowcoder.com/creation/manager/columnDetail/mPZ4kk一、基础知识是重中之重不要幻想自己能靠刷两天题就通过面试。嵌入式岗位对“基础”的依赖非常强,比如:C语言基础指针、数组、结构体、内存管理、函数指针、位运...
点赞
评论
收藏
分享
07-30 13:50
广州美术学院 设计
笑死,腾讯要求开发代码不许带脏话
没想到文明之风先刮到了腾讯🤭而且是微信牵头
amormz:
markdown痛失文件后缀
投递腾讯等公司10个岗位
点赞
评论
收藏
分享
07-14 19:37
广西农业职业技术大学 Java
怎么回事的喽
怎么没有面试呀
已注销:
再接着投吧
项目经历太流水账,且没有实习经历,我之前也是这样,后来跟着大厂导师修改了项目和简历之后成功上岸,有需要可以问我
点赞
评论
收藏
分享
06-24 20:27
北京科技大学 Java
27java,简历求拷打
27届,求各位牛爷爷拷打简历,不玻璃心
炫哥_:
为什么都读硕士了?项目还是网上的项目
(真心发问)
最后再改一次简历
点赞
评论
收藏
分享
07-30 09:54
吉林大学 产品经理
是我多想了吗?
感觉怎么语气怪怪的.... 主包实习也很忙了,下班以后在准备秋招感觉真的很疲惫,很需要建议,但是感觉对面怎么好像在阴阳我 是我的错觉吗
_mos_:
没啥吧
点赞
评论
收藏
分享
评论
点赞成功,聊一聊 >
点赞
收藏
分享
评论
提到的真题
返回内容
全站热榜
更多
1
...
百度提前批,三面被推迟一周,喜提秋招第一凉
7605
2
...
虾皮秋招一面
3359
3
...
他拿大厂SSP Offer打牌是什么概念啊?25届双非之光
3237
4
...
百度提前批 三面
2902
5
...
小鹏offer
1668
6
...
虾皮一面凉经
1500
7
...
被猿辅导挂了简历,但我想说...
1486
8
...
上班一周,工资还没拿,先欠公司两千
1389
9
...
最强本科✌
1374
10
...
大学四年,我感觉我像个“孤勇者”
1300
创作者周榜
更多
正在热议
更多
#
简历上的经历如何包装
#
29913次浏览
823人参与
#
秋招被确诊为……
#
164364次浏览
757人参与
#
中兴秋招
#
205970次浏览
2299人参与
#
工作中哪个瞬间让你想离职
#
63857次浏览
569人参与
#
你最希望上岸的公司是?
#
135321次浏览
706人参与
#
和同事相处最忌讳的是__
#
24611次浏览
244人参与
#
25届网易互娱暑实进度
#
78452次浏览
702人参与
#
虾皮求职进展汇总
#
249655次浏览
1863人参与
#
投格力的你,拿到offer了吗?
#
86884次浏览
584人参与
#
2022毕业即失业取暖地
#
102737次浏览
662人参与
#
2022毕业生求职现身说法
#
89321次浏览
700人参与
#
秋招OC许愿
#
327854次浏览
2450人参与
#
你最近一次加班是什么时候?
#
71032次浏览
350人参与
#
26届的你,投了哪些公司?
#
45933次浏览
499人参与
#
你的秋招第一面感觉怎么样
#
76995次浏览
592人参与
#
柠檬微趣工作体验
#
6775次浏览
40人参与
#
你遇到最难的面试题目是_
#
16802次浏览
201人参与
#
我对___祛魅了
#
48985次浏览
442人参与
#
地平线求职进展汇总
#
52680次浏览
370人参与
#
研究所VS国企,该如何选
#
194880次浏览
1819人参与
#
如果校招重来我最想改变的是
#
272005次浏览
2853人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务