什么是Quarkus
- Quarkus是为OpenJDK HotSpot和GraalVM量身定制的Kubernetes原生Java栈,由同类最佳的Java库和标准精心制作。
- 传统的Java堆栈是为在一个不存在云、容器和Kubernetes的生态中启动时间长、内存需求大的单片应用程序而设计的。Java框架需要不断发展,以满足这个新生态的需求。
- Quarkus的创建是为了使Java开发人员能够在现代云原生生态中创建应用程序。
Quarkus是一个Kubernetes原生Java框架,专为GraalVM和HotSpot定制,由同类最佳的Java库和标准制作而成。其目标是使Java成为Kubernetes和无服务器环境中的领先平台,同时为开发人员提供一个框架来解决更广泛的分布式应用程序体系结构。
Quarkus的特点
- 容器优先:占用空间最小的Java应用程序,最适合在容器中运行。
- 云原生:在Kubernetes等环境中拥抱12因子架构。
- 统一的命令和响应式:在一个编程模型下引入了无阻塞和命令式的开发风格。
- 基于标准的:基于大家喜欢和使用的标准和框架(RESTEasy 和 JAX-RS、 Hibernate ORM 和 JPA、 Netty、 Eclipse Vert.x、 Eclipse MicroProfile、 Apache Camel…)。
- 微服务优先:为Java应用程序带来闪电般的快速启动时间和代码运转。
- 作为一个快乐的开发者:以开发为中心的体验,毫不妥协,让你惊人的应用程序立即投入生活。
成就快乐的开发者
除了简单的工作之外,我们的目标是快乐。
实时编码
通过实时编码改进和加快内部循环开发过程,其中代码更改会自动反映在运行的应用程序中。代码->刷新浏览器->重复这一操作。
敏捷
Quarkus专注于使用已给定特征的最简单和最有用的方法,将其精简到最有用的本质。这包括如何最好地使用功能的前期分析,并指导您使用我们认为最好的做事方式。
开发服务
支持服务(如数据库、认证服务器等)的自动调配和应用程序接入。
命令行接口
创建项目,管理扩展,并执行基本的构建和开发命令。
统一配置
成千个配置文件和格式的时代已经一去不复返了。Quarkus应用程序只需一个配置文件就可以配置每个扩展。
UI开发
可视化和配置扩展以及对应用程序日志和测试组件的访问
持续测试
当测试在后台对受影响的代码运行时,立即获得有关代码更改的反馈。
远程开发
远程运行dev模式,对本地文件的更改在容器环境中立即可用。这一点,开发Java程序或Spring boot程序相对弱一些。
原生Kubernetes
Quarkus应用程序被设计为在容器中运行。Quarkus和Kubernetes的结合为创建可扩展、快速和轻量级的应用程序提供了理想的环境。Quarkus通过工具、预构建集成、应用程序服务等显著提高了开发人员的工作效率。
云原生意味着什么?
- 单步部署
- Quarkus可以轻松地将微服务应用程序部署到Kubernetes中,而不必了解底层Kubernetes框架的复杂性。Kubernetes和Kubernetes发行版提供了扩展,以简化此过程,只需最少数量的配置变量。
- 此外,Quarkus还包括扩展,可轻松将无服务器微服务部署到云提供商,包括AWS Lambda、Azure函数和Google云函数,以及Knative ,以利用Quarkus应用程序快速启动时间。
- 跟踪和调试
- Quarkus为开发人员提供了在Kubernetes中排除分布式微服务应用程序故障的工具和功能,包括跟踪和调试。Quarkus利用OpenTracing,这是一个与供应商无关的API ,帮助开发人员轻松地检测到他们的代码库的跟踪。分布式跟踪有助于确定故障发生的位置以及导致性能不佳的原因。
- 应用程序运行健康状况和指标
- Quarkus利用了SmallRye Health ,一种MicroProfile Health规范的实现。这允许应用程序向Kubernetes环境中的外部查看器提供有关其状态的信息,在Kubernetes环境中,自动化进程必须能够确定应用程序是应该丢弃还是重新启动。
- 应用配置
- Quarkus包括一个扩展,允许开发人员使用Kubernetes ConfigMaps和Secrets作为配置源。而不必将它们装载到运行Quarkus应用程序的Pod中,也不必对其Kubernetes部署(或OpenShift部署配置)进行任何其他修改。
- 远程开发
- 在应用程序运行的同一环境中创建和调试应用程序。开发模式下的实时编码,在集群Kubernetes环境中,本地所做的任何更改都将立即可见。(开发者的福音)
Demo
Quarkus项目的构建已经集成到了IDEA中,可以直接通过IDEA创建Quarkus项目。
- 新建项目 -> Quarkus
- 点击Run启动项目
- 访问显示Quarkus默认页面。可以显示出一些服务的基 本信息。
现在Quarkus国外活跃度很高,值得期待的一款Java云原生开发框架。