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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/536604.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

分区安装linux,怎样安装Linux?

我的机子上装了win2000,想装个Linux可是在安装时,竟然D 、E盘都不见了,win2000也进不去了我只得重装2000,现在我都不敢装Linux了请高手指点!|你最好用PQMAGIC先分区,大约2。5G空间就够了,可以参…

linux scp传输文件命令

scp -r /opt/test root192.168.2.105:/opt 转载于:https://www.cnblogs.com/LynnChen/p/10620576.html

pg10 10.3 1 linux64,Install Postgresql 10 In Ubutnu 16.04 LTS

PostgreSQL数据库是一个高性能的全功能的开源关系型数据库,这里讲解一下如何在Ubuntu 16.04 LTS 下安装 PostgreSQL 10。添加软件源wget -q -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -sudo sh -c echo "deb http://apt.po…

nginx能访问html静态文件但无法访问php文件

nginx.conf中红框部分修改成你的实际网站根目录转载于:https://www.cnblogs.com/IT-Crowd/p/10626549.html

linux虚拟光驱挂载方法,Linux操作系统下虚拟光驱(iso)的挂载

1、挂载iso文件一般查看iso文件内容,只需要:#mount -t iso9660 -o loop xxx.iso /mnt/cdrom就可以在/mnt/cdrom下看到xxx.iso的内容。2、复制光盘为iso镜像#dd if/dev/hdb ofxxx.iso或者#cp /dev/cdrom xxx.iso3、虚拟iso为设备#rm -rf /dev/cdrom //删除…

[深度概念]·K-Fold 交叉验证 (Cross-Validation)的理解与应用

个人主页--> xiaosongshine.github.io/ 1.K-Fold 交叉验证概念在机器学习建模过程中,通行的做法通常是将数据分为训练集和测试集。测试集是与训练独立的数据,完全不参与训练,用于最终模型的评估。在训练过程中,经常会出现过拟合…

linux mariadb 升级,linux mariadb

linux mariadb转载 一 安装下载mariaDB MariaDB-5.5.29-rhel5-x86_64-common.rpm 和MariaDB-5.5.29-rhel5-x86_64-server.rpm 包,MariaDB-5.5.29-rhel5-x86_64-client.rpm2.然后再http.//yum。mariadb。org/ 找到 RPM-GPG-KEY-MariaDB 这个PGP文件,把文件放入到/etc…

Linux Note

日期:2019/3/31 内容:Linux学习笔记 一、Linux命令 ls -l 操作效果 第一列:文件权限 一共10位。 01(r)2(w)3(x)4(r)5(w)6(x)7(r)8(w)9(x)文件类型文件所有者权限 usr权限,u权限文件所有者所属组成员的权限 group权限,g…

linux查看usb鼠标是否启动,Linux USB鼠标驱动注解及测试

参考2.6.14版本中的driver/usb/input/usbmouse.c。鼠标驱动可分为多个部分:驱动加载部分、probe部分、open部分、urb回调函数处理部分。下文阴影部分为注解。一、 驱动加载部分static int __init usb_mouse_init(void){int retval usb_register(&usb_mouse_…

退役前的最后的做题记录upd:2019.04.04

考试考到自闭&#xff0c;每天被吊打。 还有几天可能就要AFO了呢。。。 Luogu3602&#xff1a;Koishi Loves Segments 从左向右&#xff0c;每次删除右端点最大的即可。 [HEOI2014]南园满地堆轻絮 答案一定是 \(\lceil \frac{max_{1\le i < j \le n}(a_i-a_j)}{2} \rceil\)。…

linux ssh-add,linux – 如何使ssh-add从文件读取密码?

根据您的发行版本和ssh-add的版本,您可以使用或不使用以这种方式从stdin读取密码的ssh-add的-p选项&#xff1a;cat passfile | ssh-add -p keyfile如果这不工作,您可以使用Expect,Unix工具使交互式应用程序非互动.你必须从你的包管理器安装它.我为你准备了一个工具.只需将内容…

linux nginx F配置,linux下nginx的安装及配置

1、安装nginx前&#xff0c;咱们首先要确保系统安装了g、gcc、openssl-devel、pcre-devel和zlib-devel软件&#xff0c;可经过如图所示命令进行检测,若是以安装咱们能够经过图二所示卸载&#xff1a;linuxyum install gcc-cyum -y install zlib zlib-devel openssl openssl--de…

你缺啥,你缺一个得力的办公软件

其实你缺啥我都知道&#xff0c;但是&#xff0c;我又不能给你发工资&#xff0c;还得你自己努力工作才行。不过我可以给你分享几款好用的办公软件&#xff0c;对你在进行有效率的办公会有很大帮助的。曲奇办公是一款以文档为载体的企业办公管理应用。帮助企业快速实现业务标准…

C语言做一个表格的程序,用C语言画个简单表格

今天见到个题目&#xff0c;就把他做了&#xff0c;题目如下&#xff1a;在图形环境中很容易做出漂亮的表格。但在控制台环境中就比较困难了。有的时候可以用一些符号大略地模拟&#xff1a;(word文档中可能不整齐&#xff0c;拷贝到记事本中看)-------------|abc |xyztt|…

深度学习框架PyTorch一书的学习-第四章-神经网络工具箱nn

参考https://github.com/chenyuntc/pytorch-book/tree/v1.0 希望大家直接到上面的网址去查看代码&#xff0c;下面是本人的笔记 本章介绍的nn模块是构建与autograd之上的神经网络模块 除了nn外还会介绍神经网络中常用的工具&#xff0c;比如优化器optim、初始化init等 1.nn.Mod…

高级语言程序设计c 华南理工,华南理工大学高级语言程序设计(C)期末练习题

.. 《高级语言程序设计(C)》练习题一&#xff0e;单项选择题1.用C语言编制的源程序要变为目标程序必须要经过( )。(a) 解释(b) 汇编(c) 编辑(d) 编译2. 执行C程序时出现的“溢出”错误属于( )错误。(a) 编译(b) 连接(c) 运行(d) 逻辑3. 按C标识符的语法规定&#xff0c;合法的标…

bevfusion 学习笔记

目录 tensorrt ros部署&#xff1a; 也依赖ros2 c ros2安装指导&#xff1a; 相机标定工具源码&#xff1a; 官方github&#xff0c;部分模型开源 tensorrt ros部署&#xff1a; https://github.com/linClubs/BEVFusion-ROS-TensorRT 也依赖ros2 c GitHub - newintelli…

地铁售票系统设计思想及部分代码

设计思想&#xff1a;地铁售票系统的关键点在于换乘&#xff0c;所以首先要分为换乘和不换乘两种情况。不换乘比较简单&#xff0c;通过起始站名和终点站名查询他们的num&#xff0c;然后list打包输出到jsp就可以。换乘的话就先要找到两条线路&#xff0c;找到两条线路的交点也…

数字带通滤波器c语言程序,C语言编写FIR数字低通滤波器

主要是获取滤波器参数和卷积算法&#xff0c;参数根据自己的滤波器特性用matlab上面的一个fdatool工具配置生成&#xff0c;然后将这些参数写入程序里面即可(参数可适当的乘以一个系数&#xff0c;对滤波没任何影响)&#xff0c;我这里Fs 2k&#xff0c;Fpass 1k,Fstop 2k&am…

浏览器拦截跨域请求处理方法(已阻止跨源请求:同源策略禁止读取远程资源)

原文地址&#xff1a;http://my.oschina.net/lichaoqiang/blog/317823 在浏览器请求中&#xff0c;出现跨域访问资源的问题&#xff0c;我们肯定会遇到。如果跨域请求被阻止&#xff0c;有可能导致css、js 、ajax请求、font字体等资源出现无法正常访问的问题。接下来&#xff0…