我两个月来对Quarkus的了解

又一年,另一个来临,我很荣幸再次开启围绕Java,语言,生态系统和朋友的24篇精彩博客文章的统治,这些博客文章将我们所有人带入了今年最安静的假期。 这已经是第五年了(我只错过了2016年),我现在真的觉得很老。🙂但是相反的是,这些年来发生了很多事情,Java仍在努力并使我们所有人的生产年复一年。

长期从事该行业还使我向所有读者保证,一个话题是永恒的:终身学习。 当我开始开发众多的第一个企业应用程序时,有一个复杂的平台(J2EE)得到了最初的一些想法的支持,如何使它变得可用(Spring),并且我们都通过了将近二十年的生产力和简化工作来探索我们的方法。开发人员和运营。 这导致我们使用轻量级的Microprofile,容器和Kubernetes作为基础架构流程。

膨胀的规范和运行时的时代和痛苦似乎已经过去了。 但是变革带来了挑战。 意识到没有什么比经过验证和建立的API更胜一筹的了,我们已经看到许多解决方案推动了几乎合适的概念。 但并不完全。 JonasBonér创造了术语“微型”,并用它精美地描述了分布式微服务在大多数项目中的采用方式。 他们成长了,基本上变成了与同伴对接的更小的整体。 不管是否有运气,在击败成千上万个青少年服务的复杂性的同时,该概念又重新引入了启动时间挑战和扩展问题。

尽管有人一直说真正的分布式应用程序只需要其他编程模型,但作为一个行业,我们一直在竭尽全力使API知识保持活力并创建运行时,以帮助我们弥合必要与可能之间的鸿沟。 最具创新性的方法称为Quarkus 。 (是的,我仍然为他们拼错我的名字而感到愤怒;)。自从我重新加入Red Hat以来,过去两个月来我一直在不断地研究这种新颖而闪亮的东西。 这就是我学到的。 一篇博客文章中都有很多指针和链接,因此您可以同样很好地了解Quarkus。

所有世界中最好的集合在一处。

该网站将Quarkus描述为:

专为OpenJDK HotSpot和GraalVM量身定制的Kubernetes本机Java堆栈,采用最佳Java库和标准精制而成。

实际上,这已经是对其功能的很好描述。 好的,这里有两个时髦的词,但让我们从顶部开始。

从一开始,Quarkus就围绕容器优先理念进行设计。 这实际上意味着Quarkus已针对低内存使用量和快速启动时间进行了优化。 从一开始,对Graal / SubstrateVM的支持就一直是Quarkus设计的重要组成部分。 当将应用程序编译为本地映像时,它的启动速度更快,并且可以以比标准JVM小得多的堆运行。 在构建时将进行尽可能多的处理,因此您的应用程序将仅包含运行时实际需要的类。 在传统模型中,执行初始应用程序部署所需的所有类都在应用程序的生命周期内徘徊,即使它们仅使用一次。 使用Quarkus,它们甚至都不会加载到生产JVM中。 由于所有元数据处理已完成,因此这将减少内存使用量,并缩短启动时间。 所有这些以及更多使Quarkus成为容器化Java应用程序的理想选择。 您可以在Quarkus指南中快速了解如何使用Maven来构建,运行和打包应用程序 。

多年来,客户端-服务器体系结构已成为构建应用程序的实际标准。 但是发生了重大变化。 一个模型规定他们所有年龄都结束。 已经出现了一系列新的应用程序和体系结构样式,它们影响着代码的编写方式以及应用程序的部署和执行方式。 HTTP微服务,响应式应用程序,消息驱动的微服务和无服务器现在已成为现代系统中的核心角色。

Quarkus在设计时就考虑到了这个新世界,并为这些不同的范例提供了一流的支持。 Quarkus开发模型可以变形以适应您正在开发的应用程序类型。 如果要公开一个简单的RESTful端点,则可以依赖于众所周知的标准,例如JAX-RS,JPA和MicroProfile Rest Client。 如果您需要毫秒级的响应时间,100%的正常运行时间,更低的延迟,推送数据而不是拉取,更高的吞吐量和弹性,那么Quarkus也为您提供了Reactive编程的领先优势。 您可以找到更多示例, 了解有关其背后的编程范例的信息 。

最后但并非最不重要的一点是标准。 没有人希望您花时间学习新技术。 相反,Quarkus编程模型建立在成熟的标准之上。 可以是Eclipse MicroProfile等官方标准,也可以是Eclipse Vert.x等特定领域的领先框架。

依赖项注入解决方案基于CDI。 您可以使用JAX-RS批注定义REST端点。 您可以使用JPA批注来映射您的持久性实体,并可以使用JTA批注来声明事务边界。 您可以使用Eclipse MicroProfile来配置和监视您的应用程序。 您可以使用Vert.x,Apache Camel及其更多支持。 您甚至可以编写自己的扩展名 。

为了发展的喜悦

Quarkus不仅对编写Web应用程序或微服务非常有用。 它关注的不仅仅是功能集。 通过专注于简单性和预配置的默认值,它使您能够以最直观的方式完成日常工作。 开发简单的事物变得容易,而开发复杂的事物则变得容易。 Quarkus Tools for Visual Studio Code支持所有这些,它提供了Gradle支持,输入验证,属性支持等。 但是快乐仍在继续。 作为Spring Boot开发人员,您在构建Quarkus应用程序时还可以对Spring Data,Web和Dependency Injection使用众所周知的Spring批注。 使用这些API的现有知识和熟悉程度,Spring开发人员可以快速地使Quarkus变得高效。 这个15分钟的小型教程可以让您看到现场直播和实际运行。 需要明确的是,Quarkus中的Spring API兼容性并不旨在成为重新托管现有Spring应用程序的完整Spring平台。

目的是提供足够的Spring API兼容性,使使用Quarkus开发新应用程序成为自然的入门经验。 与预先优化的扩展结合使用时,Quarkus为微服务开发提供了数量惊人的功能。 综上所述 ,开发人员已成功将Spring应用程序迁移到Quarkus 。 如果您喜欢观看视频,我只能推荐Devoxx Belgium的录制,Georgios Andrianakis在Quarkus上谈论Kubernetes Native Spring应用程序 。

而且其中还有更多乐趣。 Kubernetes不仅仅是用于Docker容器的运行时平台。 可以使用特定于应用程序的自定义资源定义(CRD)扩展其API,并且您可以实现自己的控制器,以使应用程序动态地适应集群中的更改。 直到最近,大多数操作员都是用Go语言编写的,重复使用了内置Kubernetes控制器中的代码。 现在,有了Quarkus和fabric8 Kubernetes客户端,我们为在Java中实现运算符奠定了良好的基础,从而使我们能够将现有代码库与Kubernetes API扩展的功能集成在一起。 观看FabianStäbler在比利时Devoxx上谈论它 。

一个讲习班–我想要代码

有一个很棒的动手实验 ,它为参与者提供了与Quarkus的入门级动手实践,从第一行代码到提供服务,再到使用它们,最后到在一个统一的系统中组装所有内容。 它由Emmanuel Bernard,Clement Escoffier和Antonio Goncalves开发。 它以简单的逐步指导结构引导您完成所有必要的操作。 该研讨会将为您提供Quarkus的实用介绍。 您将安装所有必需的工具,然后将经典的HTTP微服务和基于事件的微服务混合在一起,以开发整个微服务体系结构。 您将通过扩展Quarkus的功能来完成,并了解有关创建本机可执行文件的更多信息。

quarkus.io上的入门指南也是了解Quarkus知识的好地方。

最后但并非最不重要的一点–它是开源的

我们可能很少再考虑这个问题了,但是自然地,作为Red Hat赞助的项目,Quarkus获得Apache 2.0许可,并在GitHub上有一个主页 。 随意加注标,分叉,贡献,提交问题,以及发送拉式请求,以帮助我们做得更好。 您也可以在Twitter上关注@QuarkusIo , 在论坛上发帖或与社区聊天 。

希望您喜欢12月的这篇第一篇文章,它缩短了您假期之前的等待时间。 祝愿您和您的亲人在一段宁静祥和的日子里来临,并非常期待与您成为更广泛的Java社区的一员,参与即将到来的2020年活动。

翻译自: https://www.javacodegeeks.com/2019/12/what-i-learned-about-quarkus-in-two-months.html

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

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

相关文章

c++从字符串中提取数字求和_【函数应用】单元格文本内提取数字并求和

本篇的主题是将单元格内一串文本,找出所有数字并求和,如下图。难度较高,新手建议仅了解下,先学会数组运用,再研究此知识点。废话少说,步入正题。重点说明:本篇只针对文本内整数的数字进行提取并…

linux 网络端口全连接扫描,Linux系统下的网络端口扫描工具Nmap

Linux端口扫描工具nmap and nwatchPort scan简介port Scan的方法介绍 portScan就是一种通过检测对方服务器的开放端口,侦测对方服务器服务的方法。一般可分为主动式和被动式两种。主动式就是通过向对方服务器的特定端口发送数据包,根据应答来判断。以nma…

iphone已停用怎么解锁_两种无密码解锁iPhone锁屏密码的方法

现在很多手机都配备指纹解锁功能,大家平时用惯了指纹解锁,有时候在需要输入锁屏密码的时候反倒记不清密码是什么了。像是手机重启后就需要输入密码解锁,iPhone锁屏密码忘了怎么办?多次输入错误密码还可能导致手机被停用&#xff0…

elisa数据处理过程图解_ELISA原理示意图详解.ppt

ELISA原理示意图详解.ppt免疫酶技术及其应用——ELISA 一、实验目的 了解和掌握免疫酶技术的测定原理。 掌握酶联免疫吸附测定技术的操作步骤,学会利用竞争ELISA的方法,定量测定抗体或抗原。 了解免疫酶技术在生物学和医学研究的重要意义及应用价值。 二…

linux查找postgre进程,postgresql数据库某一个进程占用大量CPU,问题排查详解

postgresql某一个进程占用大量CPU,问题排查,目前服务器cpu为4核,内存8G1.查下是不是我们的业务SQLSELECTprocpid,START,now() - START AS lap,current_queryFROM (SELECTbackendid,pg_stat_get_backend_pid(S.backendid) AS procp…

华硕z9pa u8 bios下载_教程:图文教学,华硕M8H M8R硬破解支持intel 9代处理器

听说2020年,Intel将要上10代U了,10代U Comet Lake-S的参数整理规格如下:赛扬G5900:2核心2线程,3.4GHz奔腾G6600:2核心4线程,4.2GHz酷睿i3-10100:4核心8线程,3.6-?GHz酷睿i3-10100T&…

64位 regsrv win10_Win10 64位安装个人版SQL2000图文教程

默认Win10上是不允许安装SQL2000的,毕竟SQL2000已经是10多年前的老软件了,但是因为它成熟稳定,相比SQL2005,SQL2008R2,SQL2012,SQL2014,体积要小的多,所以还是很希望能在Win10环境下…

Java 13:切换表达式的增强功能

您可能还记得我以前的文章,在Java 12中,传统的switch语句得到了增强,因此可以用作表达式。 在Java 13中,对该功能进行了进一步的更改 。 break语句不再可以返回值。 相反,您必须使用新的yield语句,如下所示…

linux 硬盘转换gpt分区格式化吗,Linux下使用gpt给磁盘分区、格式化、挂载

GPT(GUID)分区(推荐使用)sudo parted # 进入parted工具,输入help可查看帮助select /dev/sda # 选择你要操作的设备,一定要注意,不要把默认设备误操作了mklabel gpt # 设定使用的分区类型, 如果要用MBR分区,输入msdos即可。mkpart …

苹果mp3软件_flac、WAV、m4a等音频格式转成MP3 ,一键搞定!

在工作生活中,有时我们需要处理各种音频格式转换,有些系统或者是软件不支持特殊的音频格式添加。比如说苹果手机录音格式是M4A的,flac、WAV无损音质格式或者au格式,这些都怎么转成常用的MP3格式呢?有一种快捷的方法就是…

kdj超卖_KDJ指标超卖区域划分及交易含义

超卖区,是指卖盘强盛并逐渐进人顶峰,在技术上存在反弹可能的区域。 通常情况下,将震荡区间的20线作为徘徊区和超卖区的分界线。也就是 说,当指标线的数值跌破20就算进人了超卖区。1.超卖信号的识别与超买区的划分相似,…

linux6.2 网络yum,配置RHEL6.2的YUM源

服务器端:1、 由于yum安装支持三种协议:file://、ftp://和http://,因此如果是使用本地文件作为源,则可直接使用file:\\协议,否则需要先准备好ftp或者http服务。这次测试的是ftp源,因此需要配置好ftp服务…

iphone换机数据迁移_苹果手机换华为、小米怎么同步数据?来了!

将「雷科技Lite」收藏为我的小程序,不再错过精彩内容雷科技数码3C组编辑 | MoFirLee苹果、安卓手机之间同步数据其实不算太难,难的是没有找对方法。当然,游戏数据无法互通,这里面的问题就复杂了,也是不同平台手机转换数…

一次函数的斜率公式_斜率K的公式?

展开全部k(y1-y2)/(x1-x2)。斜率亦称“角系数”,表示平面直角坐标系中表示一条直线对62616964757a686964616fe58685e5aeb931333431353339横坐标轴的倾斜程度的量。直线对X 轴的倾斜角α的正切值tgα称为该直线的“斜率”,并记作k,ktgα。规定…

java 8流自定义收集器_Java 8编写自定义收集器简介

java 8流自定义收集器Java 8引入了收集器的概念。 大多数时候,我们几乎不使用Collectors类中的工厂方法,例如collect(toList()) , toSet()或其他更有趣的方法,例如counting()或groupingBy() 。 实际上,没有多少人真正去…

spyder pyecharts不显示_165Hz+1ms仅需千元左右 优派VX2771HDPRO显示器

VX2771-HD-PRO应该是前些时间比较受欢迎的电竞显示器之一,不足千元的售价(最近价格又涨回千元以上了)就可以拥有一台165Hz的1080P显示器,性价比还真的蛮高的。国庆在家,而且最近游戏大作不断,赶紧入手一台玩一玩。一、外观赏析开箱…

linux远程安装文件,通过image文件远程安装已经配置的Linux

smallwl 于 2006-08-29 00:08:53发表:一. 制作initrd文件1. 选择操作系统,这里就用FC2.0吧.2. 安装busybox.在这里, 需要一些命令去做一些事情, 比如fdisk, ls ,mv……如果把所有这些文件都做到initrd中,这个文件会太庞大了, busybox就是为了解决这个问题的.从www.busybox.net上…

elementui表格中tip设置_VUE2.0+ElementUI2.0表格el-table:表头扩展el-tooltip

ElementUI2.0的表格的扩展:如果要实现鼠标移到表头有注释或者弹框该怎么添加呢?可以使用table的rander-header属性,render出一个el-tooltip文字提示而文字提示的内容暂存到label-class-name属性里(当然损失了label-class-name的应有功能)在el…

Java 11新字符串方法的基准

在检查Java 11的新增功能时,我发现String类有几种新方法。 所以我想用旧的做事方法和使用新方法做一个微基准测试。 这些新方法是: boolean isBlank()String strip()Stream lines()再次测试isBlank(),trim&#xff08…

与安装应用签名不同怎么解决_TCL电视下载软件后不能安装怎么办?一招教你解决...

最近,不少TCL用户都遇到了在当贝市场下载软件后不能安装的问题,那么遇到这种问题该怎么解决呢?首先我们先分析下为什么会出现这种情况!原因:这种情况大多数是因为安装包没有下载完毕或安装包破损导致的,也可能是安装包不适合在你的系统版本中安装,需要最新版本的系统。解决方法…