Quarkus:一个Kubernetes原生Java框架
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框架相关推荐
- 低碳环保:无服务器和 Kubernetes 原生 Java 部署实践
随着云部署的兴起,IT 部门使用的物理服务器减少,用电量也相应降低,结果是通过减少碳排放帮助缓解了气候变化.云架构有助于实现这一点,因为它们不需要维护竖井式的计算资源,而是在需要保持业务服务运行时,高 ...
- Quarkus 0.12.0 发布,下一代 K8s 原生 Java 框架
开发四年只会写业务代码,分布式高并发都不会还做程序员? Quarkus 0.12.0 发布了,Quarkus 是一个用于编写 Java 应用的云原生.容器优先框架. 此版本包含 213 个问题和 ...
- 自己的java框架_手把手教你如何设计一个简单的Java框架
您可能对框架如何工作感到好奇?这里将通过一个简单的框架示例来说明框架的思想. 框架目标 首先,为什么我们需要一个除普通库以外的框架?框架的目标是定义一个过程,使开发人员可以根据个人需求实现某些功能.换 ...
- 云原生时代高性能Java框架—Quarkus(一)
--- Quarkus&GraalVM介绍.创建并启动第一个项目 Quarkus系列博文 Quarkus&GraalVM介绍.创建并启动第一个项目 构建Quarkus本地镜像.容器化部 ...
- 标准化原生 Java:拉近 GraalVM 和 OpenJDK 的距离
Java 主导着企业级应用.但在云计算领域,采用 Java 的成本比它的一些竞争对手更高.原生编译降低了在云端采用 Java 的成本:用它创建的应用程序启动速度更快,使用的内存更少. 那么,Java ...
- Java:什么是Java框架?
Java框架是开发人员使用Java编程语言创建应用程序的预写代码体.Java框架是特定于Java编程语言的.这是一个用于开发软件应用程序和Java程序的Java平台. Java框架是可重用的预写代 ...
- 别再用那些已经淘汰的技术了!2020 年 9 大顶级 Java 框架出炉!!
点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试资料 来源:Patricia Neil towardsdatascien ...
- 别再用那些已经淘汰的技术了!2020年9大顶级Java框架出炉!!
作者:Patricia Neil https://towardsdatascience.com/9-top-java-frameworks-for-2020-1cc9d3c21f4c 诞生于1995年 ...
- 流行的9个Java框架介绍: 优点、缺点等等
流行的9个Java框架介绍: 优点.缺点等等 在 2018年,Java仍然是世界上最流行的编程语言.它拥有一个巨大的生态系统,在全世界有超过900万Java开发人员.虽然Java不是最直接的语言,但是 ...
最新文章
- gffread处理工具
- ML-2 机器学习算法
- Python Django 一对多逆向查询示例
- php redis删除所有key,php redis批量删除key的方法
- java下载更改目标_Java 目标文件的修改
- Jlink commander、MCU GD32启动方式、Bootloader
- django批量修改table_django-formset实现数据表的批量操作
- 揭秘阿里云 RTS SDK 是如何实现直播降低延迟和卡顿
- spring事务再研究
- Typora使用指南以及各种小技巧
- 安徽新华学院计算机设计大赛,第十届中国大学生计算机设计大赛在安徽新华学院开幕...
- 10个最好的 Node.js MVC 框架
- mt4代理服务器存放文件,MT4指标EA DLL等文件放置目录
- ArcGIS教程:基于ArcGIS的CAD数据向GIS数据转换方法
- 被罚6500万,“偷税人”雪梨还能直播吗?
- 软考高级信息系统项目管理师系列之:项目范围管理
- 科普--电脑显示的硬盘容量为什么比标称的要小?
- Android行情走势图
- java 前后台json的传递
- hisi3559平台PCIE转USB调试
热门文章
- ubuntu14.04行更新软件包
- C++中public、protected、private的差别
- DevOps Troubleshooting(1)-运维思想
- Spring 的微内核与FactoryBean扩展机制--转载
- 网站访问慢解决思路详细图解
- Linux -- 利用IPS(***防御系统) 构建企业Web安全防护网
- OpenGL学习笔记3 —— 绘制3D物体、鼠标交互、反向变换
- 爱上MVC~为Html.EditorForModel自定义模版
- python基础课程_学习笔记13:标准库:有些收藏夹——sys
- [从菜鸟到高手演变]之智力题【史上最全】 (转)