大公司禁止 Spring Boot 使用 Tomcat?
·
这是一个在 Java 圈广为流传的说法,但需要理性看待:
“大公司禁止 Spring Boot 使用 Tomcat” 并非绝对事实,而是一种在特定高并发、高性能场景下的技术选型优化。

✅ 一、真相澄清:不是“禁止”,而是“按需替换”
- Spring Boot 默认内嵌 Tomcat,对绝大多数项目完全够用。
- 只有在高并发、低延迟、资源敏感的核心系统中,部分大厂才会主动替换为 Undertow 或 Jetty。
- 普通内部系统、管理后台、低流量 API,Tomcat 依然是首选——稳定、成熟、调试方便。
📌 关键点:这不是“Tomcat 有 bug”,而是 “在极限场景下,其他容器更优”。
✅ 二、为什么 Undertow 在高并发场景更受青睐?
1. 性能更强(尤其高并发)
- Undertow 采用 XNIO(异步 I/O) + 非阻塞架构,线程模型更高效。
- 压测数据(4C8G 环境,简单 JSON 接口):
容器 QPS(吞吐量) 内存占用 Tomcat ~8,000 ~500MB Undertow ~12,000 ~300MB 提升约 30%~50% QPS,内存节省 30%~40%。
2. 内存占用更低
- Tomcat 为每个连接分配线程(默认最大 200 线程),高并发时线程栈内存暴涨。
- Undertow 使用少量 IO 线程 + 任务队列,内存更可控。
3. 启动更快
- Undertow 初始化更轻量,适合 Serverless、FaaS 等冷启动敏感场景。
4. 灵活的组合能力
- Undertow 支持“嵌入式 HTTP 服务器 + 反向代理 + 负载均衡”一体化,适合构建网关。
✅ 三、Tomcat 的优势(为什么它仍是默认)
| 优势 | 说明 |
|---|---|
| 生态成熟 | 监控(JMX)、调优、问题排查工具链完善 |
| 兼容性好 | 对 Servlet 规范支持最完整,老旧系统迁移无痛 |
| 调试友好 | 日志清晰,错误信息明确,IDE 集成好 |
| 社区庞大 | 遇到问题 Google 一下就有答案 |
💡 对于 90% 的普通业务系统,Tomcat 的性能绰绰有余,没必要为了 10% 的性能牺牲稳定性与开发效率。
✅ 四、大厂真实做法(以阿里、字节为例)
- 核心交易/网关系统 → Undertow(追求极致性能)
- 普通微服务/内部系统 → Tomcat(稳定优先)
- 响应式编程(WebFlux) → Netty(非 Servlet 容器)
📌 他们不是“禁止 Tomcat”,而是 “分场景选型”。
✅ 五、如何在 Spring Boot 中切换容器?
只需两步:
1. 排除 Tomcat,引入 Undertow
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<exclusions>
<!-- 排除默认 Tomcat -->
<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>
2. (可选)调优配置
server:
undertow:
io-threads: 8 # IO 线程数(建议 = CPU 核数)
worker-threads: 256 # 工作线程数
buffer-size: 1024 # 缓冲区大小
启动日志会显示:
Undertow started on port(s): 8080
✅ 六、重要提醒:别被“大厂神话”带偏
- 很多文章夸大其词:“Tomcat 扛不住千并发” —— 实际上,合理配置的 Tomcat 轻松支撑 5000+ QPS。
- 瓶颈往往不在容器:数据库、缓存、业务逻辑才是性能关键。
- 过早优化是万恶之源:先用 Tomcat,压测发现瓶颈再换,才是工程思维。
🔚 结论
大公司不是“禁止 Tomcat”,而是在高并发核心链路中“优选 Undertow”。
对你我而言:
- 普通项目 → 用 Tomcat,省心!
- 高并发网关/交易系统 → 测 Undertow,可能有惊喜!
- 盲目跟风“禁用 Tomcat” → 不专业!
技术选型,永远服务于业务,而非传说。
更多推荐




所有评论(0)