quarkusio/quarkus

开发工具

把大量工作前移到构建期的 Java 框架,让容器与 Kubernetes 应用启动更快、体积更小。

15,969
3,349
Java
Apache-2.0
创建于 8 年前

如果你维护需要快速启动、或要打进原生镜像的 Java 服务,同时希望继续使用 JAX-RS、JPA、Vert.x 这类标准,Quarkus 值得花时间试。代价是构建期优化会进入日常开发和升级流程,需要团队愿意维护它。

解决什么问题

你有一个准备部署到容器或 Kubernetes 的 Java 服务。按传统运行时方式,它往往启动偏慢、运行时占用偏大,扩缩容和重新部署都比较重。Quarkus 把更多处理提前到构建期,因此产物的启动表现不同,还可以进一步做提前编译得到原生可执行文件。同一份源码既能跑在 JVM 上追求吞吐,也能编译为原生二进制用于资源受限的环境。

有什么不同

核心机制是构建期与运行期的分工调整。Quarkus 把自己定位为 container-first,并明确说它在构建期做更多事,从而启动更快 项目说明。它还提供统一的命令式与响应式编程模型,让非阻塞写法和传统写法共存在一个框架里。实际好处是团队可以继续使用 RESTEasy/JAX-RS、Hibernate ORM/JPA、Netty、Vert.x、MicroProfile 和 Camel 等标准化组件,而不必围绕一套新抽象重写。

代价是构建期行为变成必须理解和维护的东西。项目单独维护 迁移指南,说明版本之间的变化可能需要逐项处理,而不是无感升级。JVM 和原生两种目标也意味着两条构建路径,即使源码共享,运行时特征和维护工作也不相同。

谁值得试

适合已经在做 Java 微服务或规模不大的单体、准备部署到 Kubernetes,同时看重启动速度和容器效率,又不想放弃现有 Java API 与库的团队。不太适合那些依赖运行时动态加载、动态插件,或大量运行时反射且难以映射到构建期处理的项目;也不适合不愿意维护第二条原生构建路径的团队。

使用条件与边界

Quarkus 需要受支持的 JVM;项目徽章列出 JVM 17 到 25,更老的 Java 基线不在这个范围内 JVM 支持。原生目标会引入单独的构建路线和相应限制,如果原生不是刚需,从 JVM 路径起步更简单。构建期优化也意味着配置和扩展比纯运行时框架更关键,升级时应先对照迁移说明检查。

如果是参与 Quarkus 本身的开发,构建方式遵循单独的 贡献指南,这与在它之上构建应用不是一回事。文档和社区入口在 项目官网。

HotRepo 点评

HotRepo 唯一记录到的日榜观测是 2026-10-28:当时 15,969 星,当天 +3;只有这一个日期样本,无法判断关注度是否能持续。2020 年一位评论者认为它是 Java 针对容器和微服务的有趣路线,已有 Red Hat 官方支持,更接近一个可用于 HotSpot 或其他 JVM 的预编译/引导层 HN 评论。采用前建议确认你依赖的扩展和原生镜像要求覆盖当前 JVM 基线。

本文由 AI 根据项目 README 生成,更新于 2026年10月28日,以项目官方文档为准。

Hacker News 讨论

Quarkus [Alternative Java Runtime]
▲ 3 · 1 条评论 · 2020年5月28日
Quarkus – Cloud Native Java
▲ 2 · 1 条评论 · 2022年8月4日
Quarkus: Supersonic Subatomic Java
▲ 2 · 0 条评论 · 2026年2月22日