当前位置: 首页 > article >正文

【JDK17】开源应用服务器大比对

接着 next-public 源代码分析,Java 应用服务器选用 jetty。但是之前普遍使用 Tomcat,那为什么要用 jetty 么,除了这两个,Java 应用服务器开源现状并不了解,故而又是一篇科普性的笔记,以下是 又小又快的 Java 应用服务器,根据 启动速度、内存占用包大小 综合排序(开源免费,支持 Jakarta EE 规范或部分模块):


1. Jetty (嵌入式场景首选)

  • 包大小: ~15 MB(最小核心包)
  • 启动速度: <1秒(轻量级启动)
  • 内存占用: ~50 MB(基础服务)
  • 支持规范: Servlet、JSP、WebSocket(仅 Web Profile,不支持 EJB/JMS 等全功能)
  • 特点:
    • 极致轻量,适合嵌入式系统或微服务 API 网关。
    • 常用于 Spring Boot 内嵌服务器。
  • 适用场景: 高并发 Web 接口、轻量级 RESTful 服务。

2. OpenLiberty (云原生全功能)

  • 包大小: ~70 MB(基础包)
  • 启动速度: 1-3秒(优化后)
  • 内存占用: ~100-200 MB(默认堆)
  • 支持规范: Jakarta EE Web Profile 或 Full Profile(按需启用模块)
  • 特点:
    • 模块化设计,仅加载所需功能,启动快。
    • 支持微服务架构(兼容 MicroProfile)。
  • 适用场景: 云原生应用、容器化部署、快速迭代的微服务。

3. Apache TomEE (轻量级全功能)

  • 包大小: ~25 MB(Web Profile) / ~40 MB(Full Profile)
  • 启动速度: 3-5秒
  • 内存占用: ~150-300 MB
  • 支持规范: Jakarta EE Full Profile(集成 EJB、JMS 等)
  • 特点:
    • 基于 Tomcat 扩展,全功能但保持轻量化。
    • 适合需要 EJB 等企业功能的中小型项目。
  • 适用场景: 中小型 Jakarta EE 应用、传统企业系统迁移。

4. Quarkus (非全功能但极致性能)

  • 包大小: ~10-50 MB(根据 Native 编译优化)
  • 启动速度: <0.1秒(Native 模式) / 1-2秒(JVM 模式)
  • 内存占用: ~20-50 MB(Native 模式)
  • 支持规范: 部分 Jakarta EE 标准(如 Servlet、CDI) + MicroProfile
  • 特点:
    • 专为云原生设计的超轻量框架,支持 GraalVM Native 编译。
    • 非全功能 Jakarta EE,但性能碾压传统服务器。
  • 适用场景: Serverless 函数、Kubernetes 原生应用、极致性能需求。

5. WildFly (高性能全功能)

  • 包大小: ~200 MB(完整包)
  • 启动速度: 5-10秒
  • 内存占用: ~300-500 MB(默认堆)
  • 支持规范: Jakarta EE Full Profile(完整企业功能)
  • 特点:
    • 全功能企业级服务器,性能优化出色。
    • 适合需要复杂事务、分布式缓存的大型系统。
  • 适用场景: 大型分布式系统、高吞吐量企业应用。

对比排序表

服务器包大小启动速度内存占用全功能支持适用场景
Jetty~15 MB<1秒~50 MB❌ 仅 Web Profile嵌入式、API 网关
Quarkus~10-50 MB<0.1秒 (Native)~20-50 MB❌ 部分规范云原生、Serverless
OpenLiberty~70 MB1-3秒~100-200 MB✅ Web/Full Profile微服务、容器化
TomEE~25-40 MB3-5秒~150-300 MB✅ Full Profile中小型全功能应用
WildFly~200 MB5-10秒~300-500 MB✅ Full Profile大型企业系统、高并发

选型建议

  1. 追求极致轻量和速度Jetty(仅 Web 服务) 或 Quarkus(云原生)。
  2. 需要全功能且轻量化Apache TomEEOpenLiberty(按需模块化)。
  3. 大型复杂企业应用WildFly(性能与功能平衡)。

附加说明

  • Native 编译:Quarkus 和 OpenLiberty 支持 GraalVM Native Image,可进一步减少内存占用并提升启动速度(适合 Serverless 场景)。
  • 容器优化:OpenLiberty 和 Quarkus 提供官方 Docker 镜像,优化容器部署。
  • 性能测试数据参考: Techempower 基准测试 可查看各框架的吞吐量排名。
原文地址:https://blog.csdn.net/github_39078243/article/details/146306051
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.kler.cn/a/591949.html

相关文章:

  • logparser日志分析详解
  • ubuntu20.04安装mysql-workbench
  • DataWhale 大语言模型 - 模型详细配置
  • conda 的 envs_dirs 配置出错
  • 解决 ECharts 切换图表时的 Resize 问题
  • 博客图床 VsCode + PicGo + 阿里云OSS
  • SQLark中如何进行数据筛选与排序
  • 批量测试IP和域名联通性2
  • Seaborn 数据可视化指南:核心功能与实战技巧
  • Android wifi的开关Settings值异常分析
  • Type-C:智能家居的电力革命与空间美学重构
  • 前端vue3 setup,后端fastapi
  • 09.【C++】list链表(STL中的列表容器,C++封装的带头双向链表,可实现指定类型的增删查改,迭代器操作等功能)
  • Qt 中工具窗体与普通窗体在任务栏中的区别
  • 基于微信小程序的网上商城
  • jmeter-sample
  • MySQL日期转字符串,字符串转日期的函数
  • Skia 图形引擎介绍
  • Vim软件使用技巧
  • Vue3组合式函数(刷新率 useFps)