Red Hat发布了Quarkus,这是一个为GraalVM和OpenJDK HotSpot量身定制的Kubernetes原生Java框架。Quarkus的目标是使Java成为Kubernetes和无服务器环境中的领先平台,为开发人员提供统一的反应式和命令式编程模型。

Quarkus利用Java开发人员使用的一系列库,如Eclipse MicroProfile和Vert.x,带来了一个全栈框架。Quarkus依赖注入基于CDI,允许开发人员使用JPA/Hibernate、JAX-RS/RESTEasy等。此外,Quarkus还包含一个扩展框架,第三方框架作者可以利用该框架对其进行扩展;这个扩展框架同时还编译成了一个GraalVM原生二进制文件。

RedHat表示,Quarkus提供了可观的运行时效率,比如快速启动,支持在容器和Kubernetes上自动伸缩微服务,而低内存利用率有助于优化微服务体系结构部署中的容器密度。同时,它还提供了更小的应用程序和容器镜像空间占用。

(图片来自: https://quarkus.io/)

按照设计,Quarkus完美地引入了命令式和反应式模型,旨在让熟悉命令式模型但不想学习新范式的Java开发人员以及采用云原生/反应式模型方法的开发人员快速采用。

命令式风格:

@InjectSayService say;@GET@Produces(MediaType.TEXT_PLAIN)public String hello() {    return say.hello();}

反应式风格:

@Inject @Stream(\u0026quot;kafka\u0026quot;)Publisher reactiveSay;@GET@Produces(MediaType.SERVER_SENT_EVENTS)public Publisher stream() {    return reactiveSay;}

也可以使用Quarkus实现在无服务器环境中使用的函数,比如,下面是一个AWS Lambda的例子:

public class HelloLambda implements RequestHandler {    @Inject    HelloGreeter greeter;    @Override    public String handleRequest(HelloRequest request, Context context) {        return greeter.greet(request.firstName, request.lastName);    }}

Quarkus被设计成少配置或无配置,其工作方式很直观。为此,开发人员可以用以下工具构建一个新项目:

mvn io.quarkus:quarkus-maven-plugin:0.12.0:create \\    -DprojectGroupId=my-groupId \\    -DprojectArtifactId=my-artifactId \\    -DprojectVersion=my-version \\    -DclassName=\u0026quot;org.my.group.MyResource\u0026quot;

Quarkus还提供了“在线编码(Live Coding)”功能,使开发人员避免了编写代码→编译→部署→刷新浏览器→重复的枯燥过程。运行mvn compile quarkus:dev,Quarkus将在开发模式下启动。当它接收到HTTP请求时,它将保存该请求并检查是否更改了任何应用程序源文件。如果有,它将透明地编译更改的文件,重新部署应用程序,然后将HTTP请求发送给重新部署的应用程序。

Quarkus似乎至少是云时代一个有趣的替代方案。在这个时代,容器、Kubernetes、微服务、函数即服务(FaaS)和云原生应用程序正在提供更高级别的生产力和效率。

要了解关于Quarkus的更多细节,请访问 quarkus.io。想要开始使用Quarkus的开发人员可以查看入门指南或其他可用的指南。

查看英文原文:Quarkus, a Kubernetes Native Java Framework

Quarkus:一个Kubernetes原生Java框架相关推荐

  1. 低碳环保:无服务器和 Kubernetes 原生 Java 部署实践

    随着云部署的兴起,IT 部门使用的物理服务器减少,用电量也相应降低,结果是通过减少碳排放帮助缓解了气候变化.云架构有助于实现这一点,因为它们不需要维护竖井式的计算资源,而是在需要保持业务服务运行时,高 ...

  2. Quarkus 0.12.0 发布,下一代 K8s 原生 Java 框架

    开发四年只会写业务代码,分布式高并发都不会还做程序员?   Quarkus 0.12.0 发布了,Quarkus 是一个用于编写 Java 应用的云原生.容器优先框架. 此版本包含 213 个问题和 ...

  3. 自己的java框架_手把手教你如何设计一个简单的Java框架

    您可能对框架如何工作感到好奇?这里将通过一个简单的框架示例来说明框架的思想. 框架目标 首先,为什么我们需要一个除普通库以外的框架?框架的目标是定义一个过程,使开发人员可以根据个人需求实现某些功能.换 ...

  4. 云原生时代高性能Java框架—Quarkus(一)

    --- Quarkus&GraalVM介绍.创建并启动第一个项目 Quarkus系列博文 Quarkus&GraalVM介绍.创建并启动第一个项目 构建Quarkus本地镜像.容器化部 ...

  5. 标准化原生 Java:拉近 GraalVM 和 OpenJDK 的距离

    Java 主导着企业级应用.但在云计算领域,采用 Java 的成本比它的一些竞争对手更高.原生编译降低了在云端采用 Java 的成本:用它创建的应用程序启动速度更快,使用的内存更少. 那么,Java ...

  6. Java:什么是Java框架?

    ​ Java框架是开发人员使用Java编程语言创建应用程序的预写代码体.Java框架是特定于Java编程语言的.这是一个用于开发软件应用程序和Java程序的Java平台. Java框架是可重用的预写代 ...

  7. 别再用那些已经淘汰的技术了!2020 年 9 大顶级 Java 框架出炉!!

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试资料 来源:Patricia Neil towardsdatascien ...

  8. 别再用那些已经淘汰的技术了!2020年9大顶级Java框架出炉!!

    作者:Patricia Neil https://towardsdatascience.com/9-top-java-frameworks-for-2020-1cc9d3c21f4c 诞生于1995年 ...

  9. 流行的9个Java框架介绍: 优点、缺点等等

    流行的9个Java框架介绍: 优点.缺点等等 在 2018年,Java仍然是世界上最流行的编程语言.它拥有一个巨大的生态系统,在全世界有超过900万Java开发人员.虽然Java不是最直接的语言,但是 ...

最新文章

  1. gffread处理工具
  2. ML-2 机器学习算法
  3. Python Django 一对多逆向查询示例
  4. php redis删除所有key,php redis批量删除key的方法
  5. java下载更改目标_Java 目标文件的修改
  6. Jlink commander、MCU GD32启动方式、Bootloader
  7. django批量修改table_django-formset实现数据表的批量操作
  8. 揭秘阿里云 RTS SDK 是如何实现直播降低延迟和卡顿
  9. spring事务再研究
  10. Typora使用指南以及各种小技巧
  11. 安徽新华学院计算机设计大赛,第十届中国大学生计算机设计大赛在安徽新华学院开幕...
  12. 10个最好的 Node.js MVC 框架
  13. mt4代理服务器存放文件,MT4指标EA DLL等文件放置目录
  14. ArcGIS教程:基于ArcGIS的CAD数据向GIS数据转换方法
  15. 被罚6500万,“偷税人”雪梨还能直播吗?
  16. 软考高级信息系统项目管理师系列之:项目范围管理
  17. 科普--电脑显示的硬盘容量为什么比标称的要小?
  18. Android行情走势图
  19. java 前后台json的传递
  20. hisi3559平台PCIE转USB调试

热门文章

  1. ubuntu14.04行更新软件包
  2. C++中public、protected、private的差别
  3. DevOps Troubleshooting(1)-运维思想
  4. Spring 的微内核与FactoryBean扩展机制--转载
  5. 网站访问慢解决思路详细图解
  6. Linux -- 利用IPS(***防御系统) 构建企业Web安全防护网
  7. OpenGL学习笔记3 —— 绘制3D物体、鼠标交互、反向变换
  8. 爱上MVC~为Html.EditorForModel自定义模版
  9. python基础课程_学习笔记13:标准库:有些收藏夹——sys
  10. [从菜鸟到高手演变]之智力题【史上最全】 (转)