对比维度 | Tomcat | Jetty |
---|---|---|
架构设计 | 多层级容器结构(Server→Service→Engine等),复杂度高 | 基于Handler链的轻量级设计,扩展性强 |
线程模型 | 默认BIO(可配置NIO),适合短连接高并发 | 默认NIO,擅长长连接和异步处理 |
资源占用 | 内存消耗较高,启动较慢 | 轻量级,启动快,内存占用低 |
配置复杂度 | XML配置复杂,企业级功能集成度高 | 配置简洁,支持代码级嵌入 |
适用场景 | 企业级应用、传统J2EE项目 | 云原生、嵌入式系统、微服务架构 |
✅ 需要完整Java EE支持(如JSP、EJB)
✅ 企业级应用,需稳定性和成熟社区支持(如金融、政府系统)
✅ 已有历史项目维护,兼容性要求高
✅ 嵌入式设备或微服务架构(如智能硬件、IoT)
✅ 云原生环境,需快速启动和低内存消耗(Kubernetes部署)
✅ 高度定制化需求,需灵活扩展Handler链
<dependency>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-starter-webartifactId>
<exclusions>
<exclusion>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-starter-tomcatartifactId>
exclusion>
exclusions>
dependency>
<dependency>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-starter-jettyartifactId>
dependency>
实践建议:新项目优先考虑Jetty(尤其微服务),遗留系统继续使用Tomcat。性能敏感场景建议实测验证,如高并发短连接选Tomcat,长连接服务选Jetty或Netty。