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

JMeter 5.6.3 + JDK 17 环境搭建与本地项目压测实战指南 性能测试是保障软件系统稳定性和可扩展性的关键环节,其核心原理是通过模拟真实用户并发请求,评估系统在负载下的响应能力、吞吐量和资源消耗。JMeter作为一款开源的Java应用,是实现这一目标的经典工具,其价值在于能够对Web应用、API接口进行全面的功能验证和压力测试,帮助开发与测试团队提前发现性能瓶颈。在实际应用场景中,搭建一个与开发环境兼容的测试平台至关重要,特别是当现代Java项目普遍采用JDK 11及以上版本时,选择JMeter 5.6.3与JDK 17的LTS组合,能有效避免兼容性问题,并利用JDK 阅读详情

接着 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 TomEE 或 OpenLiberty(按需模块化)。
  3. 大型复杂企业应用 → WildFly(性能与功能平衡)。

附加说明

  • Native 编译:Quarkus 和 OpenLiberty 支持 GraalVM Native Image,可进一步减少内存占用并提升启动速度(适合 Serverless 场景)。
  • 容器优化:OpenLiberty 和 Quarkus 提供官方 Docker 镜像,优化容器部署。
  • 性能测试数据参考: Techempower 基准测试 可查看各框架的吞吐量排名。
Java与JDK版本全解析:从核心概念到多版本环境配置实战 Java作为一门广泛应用的编程语言,其版本生态由语言规范和具体实现共同构成。Java语言规范定义了语法与核心API,而JDK则是该规范的工具包实现,包含编译器、JVM及各类开发工具。理解规范与实现的区别,对于保障开发、测试与生产环境的一致性至关重要,能有效避免因版本混淆导致的部署故障。在技术选型中,LTS版本因其长期支持成为企业级应用的首选。实际开发中,开发者常需管理多个JDK版本,涉及jdk安装、jdk环境变量配置及IDE集成等高频操作。通过系统学习版本管理策略与环境配置技巧,开发者可以构建稳定高效的Ja 阅读详情

相关推荐

Java版本兼容性全解析:从Class文件版本到JDK映射与实战避坑

Java开发中,版本兼容性是确保应用稳定运行的基础。其核心原理在于Java虚拟机(JVM)通过Class文件头部的版本号来校验字节码的兼容性,这决定了高版本JVM可以向下兼容运行低版本编译的类文件,反之则会导致`UnsupportedClassVersionError`。理解这一机制的技术价值在于,它是进行安全升级、依赖管理和跨环境部署的决策基石,能有效避免因版本错配引发的运行时崩溃。在实际应用场景中,无论是维护历史项目、升级JDK版本,还是为开源库选择最低兼容版本,掌握JDK版本与Class文件版本的精确

weixin_33913332的博客 397

【jdk17下载】 【0基础秒入门】OpenJDK 17 开源项目教程

OpenJDK 17 是 Java 开发工具包(JDK)的一个开源实现,由 OpenJDK 社区维护。这个版本是 Java 平台的长期支持(LTS)版本之一,提供了许多新特性、改进和安全更新。OpenJDK 17 支持多种平台,包括 Windows、Linux 和 macOS,适用于各种规模的企业和开发项目。 ## 项目快速启动 ### 环境准备 在开始之前,请确保您的系统上已经安装了 Gi

gitblog_00564的博客 1179

宝兰德应用服务器微服务版V11.5.0-安装和使用

宝兰德应用服务器微服务版V11.5.0是一款支持SpringBoot3.x和JakartaEE 10规范的WEB中间件产品,可替代SpringBoot内置容器。本文介绍了该产品的版本信息、安装方法及Maven依赖管理。安装介质包含部署脚本和依赖库文件,支持通过脚本或手动命令将依赖安装到本地Maven缓存或发布到远程仓库。产品提供Servlet容器、国密、JSP、JDBC连接池、WebSocket等可选功能模块,适用于JDK17及以上环境。

FantasyAppServer的博客 1876

JumpServer堡垒机从操作系统到jumpserver安装的全攻略

搭建jumpserver,从如何做操作系统,使用的版本号等,保姆级的文档

sanwurensheng的博客 1981

jdk1.5.0_08绿色包

简化版的jdk1.5,方便一些需要jdk1.5环境下载;下载后解压,需要配置JAVA_HOME\CLASSPATH\PATH等环境变量。

TCNOpen实现TRDP通信协议(源码编译运行测试)

概述 本文介绍了通过TCNOpen开源源码实现TRDP通信,包括源码下载,开发环境搭建,编译运行,测试。 Linux环境下编译运行TRDP (一) 下载CANOpen源码。 下载地址:https://sourceforge.net/p/tcnopen/trdp/HEAD/tree/ (二) 源码编译 下载源码解压过后,在根目录文件readme-makefile.txt有介绍源码的配置和编译方法。 在trdp/config目录下可以看到包含在linux环境下的编译配置文件LINUX_config;执行”m

fengweibo112的博客 9635

Open JDK 17、Alibaba Dragonwell 17和Oracle JDK 17

要花钱不推荐。

从2026-09-21开始专注于AI,以前是后端研发、大数据研发等 1021

解决微信浏览器弹出 Download: Null 问题的终极指南(附阿里云 OSS 配置详解)

微信内置浏览器点击下载链接时弹出 "Download: Null" 的问题,是开发者常遇到的痛点。本篇文章全面解析其原因,包括 iOS 文件下载限制、Content-Disposition 响应头的重要性,以及阿里云 OSS 默认配置的影响。通过详细教程,教你如何在阿里云 OSS 中设置 Content-Disposition 元数据(attachment;filename=xxx.pdf),有效解决该问题。同时,拓展介绍微信浏览器的文件下载限制、跨平台兼容性优化以及 CDN 配置注意事项。

楠搏万的博客 3999

改变世界的10款开源服务器软件:Linux, Nginx, Docker等

从Linux到Kubernetes,从Apache到Nginx,是什么力量在支撑着现代互联网?本文将为你盘点十款改变了世界的、不朽的开源服务器软件,带你领略开源精神的伟大。

Clownseven的博客 888

Unity中Newtonsoft.Json的使用(一)

在Unity中下载Newtonsoft.Json,并进行序列化和反序列化

洛苍离的博客 1万+

ESP32S3 Korvo2V3四通道AEC配置实战:基于AFE的回声消除优化

本文详细介绍了在ESP32S3 Korvo2V3平台上配置四通道AEC(回声消除)的实战经验。通过AFE算法优化和硬件连接调试,实现高质量回声消除,显著提升智能音箱和会议设备的语音交互体验。重点解析了四通道配置、数据格式对齐和参数调优等关键技术要点。

elastic6hunter的博客 938

Java 开发环境搭建全攻略:从 JDK 安装到 HelloWorld 运行

步骤内容状态1下载安装 JDK 17 LTS✅2配置 JAVA_HOME 和 PATH 环境变量✅3安装 VS Code 及 Java 扩展包✅4编写 HelloWorld.java 源文件✅5使用 javac 编译、java 运行✅# 编译 javac -encoding UTF-8 HelloWorld.java # 运行 java HelloWorld环境搭建好之后,就可以开始你的 Java 编程之旅了!下一篇我们将学习 Java 的基本语法和数据类型,敬请期待。

马优晨 5685

Upwork数据战争:用爬虫与AI预测垄断订单

当普通自由职业者还在“等客户发需求”时,顶尖玩家已用数据预测客户明天需要什么; 当竞争对手熬夜抢单时,你的爬虫早已自动提交提案—— 这不是科幻,而是2025年的现实! 本文将手把手教你用合法工具搭建“数据战情室”,让每个决策都有万亿级数据支撑!

qq_61813593的博客 983

【亲测免费】 WildFly 应用服务器常见问题解决方案

WildFly 是一个开源的应用服务器,由 Red Hat 公司开发和维护。它支持 Jakarta EE(以前称为 Java EE)和 MicroProfile 标准,提供了快速启动、小内存占用、模块化设计和统一的配置管理等特性。WildFly 主要使用 Java 编程语言,适合用于开发和部署企业级 Java 应用程序。 ## 新手使用注意事项及解决方案 ### 1. 环境配置问题 **问题...

gitblog_00087的博客 735

西门子S7-1200控制伺服/步进电机方法与接线(全)

西门子S7-1200控制伺服/步进电机方法与接线(全) 伺服/步进电机在非标自动化控制中十分常用,但作者发现在各类开源网站上很少有人做西门子1200PLC控制伺服/步进电机的教程,于是今天想着跟大家分享一下。 本文共分为一下几个四个内容。 文章目录西门子S7-1200控制伺服/步进电机方法与接线(全)前言一、准备二、接线1.PLC接线:2.伺服接线:3. 步进电机的接线:三、代码组态代码四、可能出现的问题 前言 工程控制常用到三项异步电机、直流电机等,但他们都无法准确的控制电机角度;于是有了步进电机、

weixin_46060068的博客 7万+

UCIE Specification详解(八)

Logical Physical Layer(逻辑物理层)

Crazzy_M的博客 1608

JDK 与 Tomcat:Java 开发者的左膀右臂

JDK 和 Tomcat 是 Java 开发领域中不可或缺的重要工具,它们分别在程序开发与运行部署环节发挥着关键作用。深入理解 JDK 和 Tomcat 的功能与作用,以及它们的安装和配置步骤,能够帮助开发者更好地掌握 Java 开发技术,构建出更优质、高效的 Java 应用程序。无论是开发小型的个人 Web 项目,还是参与大型企业级应用的开发,JDK 和 Tomcat 都是开发者值得信赖的得力助手。

BANaanaa的博客 806

两组相机(或三维点)对齐方法介绍及实现代码(求解相似变换,包含旋转R、平移t、尺度s)

  这个变换用于将生成的稀疏重建场景对齐到真值上。由于SfM(Structure from Motion,运动恢复结构)求解的结果是尺度未定的,所以重建场景与真值之间不仅会相差一个旋转与平移,还会存在尺度缩放。待求解的问题可以描述为:已知一组相机(个数为m)的位姿真值Rgt、tgt和预测位姿Rpred、tpred,现要将预测值对齐到真值上。它们之间会相差一个相似变换Msimilarity,包括尺度s、旋转量R、平移量t,可以根据如下步骤进行求解:    1 求解旋转R   首先计算所有m个相机的位姿差异总和

zeeq的博客 3927

什么是龙芯平台JDK?国产龙芯平台JDK版本解惑

什么是龙芯平台JDK? 龙芯公司基于OpenJDK从无到有实现的LoongArch64和MIPS64上的版本。 龙芯平台JDK是基于开源的OpenJDK研发的,通过了JCK的测试,符合Java SE的标准。 龙芯平台JDK使用GPLv2,with Classpath Exception授权协议。 为什么会有两个指令集版本的JDK? 因为龙芯CPU目前有两套指令集架构。龙芯5000系列使用了最新的LoongArch64自主指令集架构,龙芯5000之前的处理器都是基于MIPS64指令集架构,不同CPU的指令集不

eguid音视频方向博客,分享经过实践检验的硬核音视频技术。FFmpeg、openCV和JavaCV音视频和图像处理系列教程发布十周年,众多开发者的严格验证。欢迎关注,一起交流探索学习最新音视频和图像处理技术 5122

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

深入解析 JBoss:开源企业级 Java 应用服务器的全面指南

JBoss 不只是一个应用服务器,它是一个经过二十多年生产环境验证的企业级平台,在银行、航空、物流、金融等领域支撑了无数关键业务系统。从社区开源项目到 Red Hat 的旗舰 Java 中间件产品,它的演进既体现了对技术创新的坚持,也展现了对企业级稳定性的承诺。无论你是在现代化改造遗留系统、构建新的云原生微服务,还是运行高并发事务型应用,JBoss(无论是 WildFly 还是 EAP 版本)都提供了与之匹配的能力、性能和成本效益。模块化架构让它保持轻量;Jakarta EE 认证确保标准合规;

HK2KING的博客 1032

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

Windows系统JDK17安装与环境变量配置全攻略

环境变量是操作系统用于指定运行环境参数的重要机制,其核心原理是通过键值对存储系统或用户级配置信息,供应用程序在运行时动态读取。在Java开发中,JAVA_HOME和Path这两个环境变量的正确配置,是实现命令行全局调用java、javac等工具的技术基础。合理配置环境变量不仅能确保开发工具链的顺畅运行,更是实现多版本JDK灵活管理、避免路径冲突的关键。对于需要在Windows平台进行Java开发的工程师而言,掌握JDK安装路径选择、系统变量设置及验证方法,是搭建高效、可维护开发环境的首要实践。本文以最新的长

weixin_34279579的博客 297

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

Linux系统下快速安装vim、JDK及Tomcat

Linux作为服务器操作系统的主要选择之一,其强大的灵活性和安全性使其成为部署各种应用程序和服务的理想平台。本文将指导您如何在Linux系统中安装文本编辑器vim、Java开发工具包JDK以及Java应用服务器Tomcat,帮助您快速搭建Java开发环境。通过上述步骤,您已经在Linux系统上成功安装了vim、JDK以及Tomcat,为Java应用程序的开发和部署奠定了坚实的基础。我们可以从Oracle官网下载最新的JDK,或者选择其他开放源代码的替代品,如OpenJDK。

连界优站 512

7大维度深度解析:为什么Corretto 17成为企业级Java的最优解?

作为Java开发者,我们一直在寻找兼具稳定性、性能与成本优势的JDK发行版。Amazon Corretto 17作为OpenJDK的企业级分发版本,凭借亚马逊内部大规模生产环境的验证,正在成为越来越多企业的首选。本文将从技术架构到实际应用,全面剖析这款JDK的核心价值。 ## 一、超越开源:Corretto 17的五大核心竞争力 在Java生态系统中,选择合适的JDK分发版直接影响应用性能与运

gitblog_00793的博客 386

从 JDK 1.8 切换到 JDK 21 时遇到 NoProviderFoundException 该如何解决?

并且你已经在 pom.xml 明确加入了 hibernate-validator:8.0.0.Final,但运行日志里却还能看到 Hibernate Validator 6.2.5.Final 的打印(即实际加载的仍是旧版本)。这说明问题不是单纯缺依赖,而是类路径(classpath)上存在版本冲突 / 旧的 provider 仍被加载,或 API 与 provider 版本不匹配,或运行时的 classloader/模块路径把旧实现“带进来”了。下面逐条讲清楚怎么诊断和解决。

记录从移动端、鸿蒙到物联网与AI的完整实战与思考。专注于分享可复用的工程方案与产品思维,尤其深入鸿蒙生态与全栈开发。以十年工程与管理沉淀,为你提供清晰的技术纵深路径。坚信技术的价值在于“贯通”与“落地”。 1259

蓝香蕉代码 |【鸿蒙&&Java】(一)编译获取鸿蒙版本JDK

随着鸿蒙生态的持续扩展和鸿蒙电脑的推出,对桌面级语言运行时的需求日益凸显。本文重点围绕Java语言展开论述,系统性地分析鸿蒙系统支持Java的必要性及其运行机制,并以BiShengJDK8版本为例提供详细的使用指南。按照上述流程,构建一个鸿蒙版本的JDK,还是相对轻松的,下次给大家介绍如何在鸿蒙电脑应用中使用JRE问题记录。

weixin_39954655的博客 1331

squid+tomcat+jdk+urlrewritefilter

一、软件: CODE: squid-2.6.STABLE23.tar.gz apache-tomcat-6.0.20-src.tar.gz jdk-6u17-linux-x64.bin urlrewritefilter-2.6.zip下载地址: CODE: http://www.squid-cache.org/Versions/v2/2.6/squid-2.6.STA

menghuannvxia的专栏 885
上一篇: 【Maven-plugin】有多少官方插件?
下一篇: 【协作开发】低成本一键复刻github的gitea
旷野说
博客等级 码龄9年 361粉丝 86原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值