2023年全新java架构技术框架Quarkus实战神仙文档

2021年最值得学习的5款开源Java框架 原文链接:https://mp.weixin.qq.com/s/wYFlvg2tomcaOEby8tlPQQ 自从1996年首发,至今25年以来,Java凭借在后端、大数据、机器学习、Web、Android等领域的应用,使其仍然占据着统治地位,长期占据全球最受欢迎编程语言前三名。 在Python、JavaScript等脚本语言中出现了大量的框架、工具包,使得开发变得更轻松、更快。 在Java中亦是如此,它也提供了大量框架,这些框架可以为开发人员提供适合不同领域、不同方向的最佳解决方案,例如,网络开. 阅读详情

前言

Quarkus是一款有别于传统Java架构的新技术框架。它建立在我们熟知的技术栈上,使用了诸多成熟的技术,如JPA、JAX-RS、EclipseVert.x、Eclipse MicroProfile和CDI等,并将这些技术与Kubernetes紧密融合在一起。用户可以借助Kubernetes高效的调度运维能力,最大限度地节约资源。

云原生的星星之火,自开源社区的Kubernetes爆红之后,变成燎原之势,随后云原生相关的技术如雨后春笋般涌现。

本文采用十分简单的问题-解决方案-讨论的结构,细致透彻地描绘了Quarkus的技术点。通过本文,用户可以借助Quarkus提高Java相关的研发效率,从而在快节奏的微服务构建和基于云的应用程序开发领域立于不败之地。

目录

主要内容

全文总共包含16章的内容,由浅入深的解析Quarkus,Quarkus是一个相对较新的框架,又处于新的领域(原生Java和GraalVM)。我们想深入研究一些互联网上找不到的例子和实践。本文中没有需要理解的大型应用,所有的例子都是自包含的,可以随时使用。我们希望本文能够作为Quarkus开发的参考!

第1章Quarkus概述;Kubernetes已成为用于部署企业应用的事实平台。随着企业应用容器化和加速向Kubernetes平台迁移,原有的基于Java的应用程序在编码、部署和维护方式等方面发生了很大变化。如果不对Java应用程序做任何变更就直接容器化并运行,那么会遇到很多麻烦。由容器组成的Pod(Kubernetes中的一个术语)是Kubernetes中的基本调度单元,因此,为了避免入坑,深入理解如何正确地容器化Java应用程序是非常重要的。

Quarkus是一个集成了Kubernetes的开源云原生框架,基于ApacheLicense 2.0发布,用于创建适配GraalVM和OpenJDK HotSpot的Kubernetes原生应用,基于Hibernate、Eclipse MicroProfile、Kubernetes、Apache Camel和Eclipse Vert.x等流行库和技术构建。

Quarkus的优点包括可以与Docker和Kubernetes轻松集成,启动速度快,驻留集大小(RSS)内存消耗低,可提高开发者的生产力。本章概述Quarkus是什么,解决什么问题,如何与Kubernetes集成,为什么它会得到开发人员的喜爱,以及最值得关注的特性。

第2章搭建脚手架;在本章中,你将学习如何创建Quarkus的项目结构。Quarkus自带了一些不同的方法来搭建项目的脚手架。

本章涵盖以下主题:

·从Maven到VSCode IDE,用不同的方式来构建项目的脚手架

·通过实时重载改善开发者的体验

·使用Quarkus提供静态资源

第3章开发RESTful服务;Quarkus集成了RESTEasy,这是一种用于定义REST API的JAX-RS实现。在本章中,你将学习如何在Quarkus中开发RESTful Web服务。本章涵盖以下主题:

·如何使用JAX-RS来创建CRUD服务

·如何启用CORS向其他域请求资源

·如何实现响应式路由

·如何实现过滤器来操作请求和响应

第4章配置;本章涵盖以下主题:

·如何配置一个Quarkus服务

·如何在服务中注入配置参数

·如何在不同的环境中使用配置值

·如何正确配置日志系统

·如何创建自定义的配置系统

第5章编程模型;在本章中,你将会了解到与Quarkus编程模型相关的话题。Quarkus所遵循的编程模型是独特的,与其他框架不同的是,Quarkus允许你混合使用CDI命令式模型和SmallRye Mutiny响应式模型。第15章专门介绍了使用响应式模型的方法。有时,你可能会发现自己需要这两种模型,所以知道如何使用每种模型是件好事。

本章涵盖以下主题:

·如何对JSON和XML文档进行编组(marshal)和解组(unmarshal)

·如何校验请求参数

·如何使用CDI规范作为上下文和依赖注入的解决方案

·如何为Quarkus服务编写测试

第6章打包Quarkus应用程序;在本章中,你将学习如何将Quarkus应用程序打包为原生可执行文件或JVM可运行的文件,从而使其能够被分发和部署。如今,容器已成为应用程序发布的标准方式,所以你需要知道如何将Quarkus应用程序容器化。

本章涵盖以下主题:

·如何将Quarkus应用程序打包为JVM可运行的文件

·如何将Quarkus应用程序打包为原生可执行文件

·如何将Quarkus应用程序容器化

第7章持久化;你应该已经很熟悉。Quarkus所使用的持久化存储策略了,事务、数据源、Java Persistence API(JPA)等都是已经存在多年的标准了。

Quarkus使用了这些标准,并且在某些情况下,在它们的基础上做了扩展,使持久化存储的工作更加容易。在本章中,你将学习如何在Quarkus中使用持久化存储。本章涵盖了传统的关系型数据库管理系统(RDBMS)和NoSQL数据库。

如果你使用的是传统的RDBMS或MongoDB,那么Quarkus还提供了一些额外的功能,比如Panache,它提供了一种entity或record类型的API。Panache实现了许多标准的JPA语法,使你的应用程序更容易阅读和维护,可以帮助你提高工作效率。

本章涵盖以下主题:

·配置数据源

·处理事务

·管理数据库模式迁移

·使用Panache API

·与NoSQL数据库交互

第8章容错;在本章中,你将了解为什么需要容忍微服务架构中的故障。微服务架构严重依赖网络来运行,而网络作为一个关键的部分,并不总是运行良好,会出现网络故障、网线饱和、拓扑结构变化、下游服务更新等各种问题,因此微服务架构需要具备容错能力。

出于这个原因,构建对任何类型的问题都具有容错能力的服务,并提供优雅的解决方案,而不仅仅是传播错误,这一点非常重要。

本章涵盖以下主题:

·实现不同的弹性策略

·提供一些后备逻辑,以防出现错误

·正确配置容错参数

第9章可观察性;在本章中,你将了解可观察性,以及为什么它在微服务架构中很重要。可观察性通过观察一些参数(如错误代码、性能或任何一种业务指标)来反映系统是如何表现的。Quarkus集成了几种用于可观测性的技术。

本章涵盖以下主题:

·定义健康检查

·为监测系统提供衡量标准

·配置分布式跟踪,以便在网状结构中了解请求的概况

第10章与Kubernetes集成;到目前为止,我们一直在学习如何在裸机上开发和运行Quarkus应用,但是在Kubernetes集群中运行时Quarkus才能真正闪光。

在本章中,你将了解如何将Quarkus和Kubernetes集成以及用于在Kubernetes中开发和部署Quarkus服务的扩展。

Kubernetes成为部署应用程序的事实平台。为此,充分了解Kubernetes以及如何在其上正确开发和部署应用程序非常重要。

本章涵盖以下主题:

·构建和推送容器镜像

·生成Kubernetes资源

·部署一个Quarkus服务

·开发一个Kubernetes Operator

·在Knative中部署一个服务

第11章认证与授权;在本章中,你将会了解到应用程序安全的支柱——授权和认证,如何在Quarkus应用程序中工作。本章涵盖以下主题:

·文件支持的认证和授权方案

·数据库支持的认证和授权方案

·外部服务支持的认证和授权方案

第12章应用程序密钥管理;每一个应用程序都有需要保密的信息,这些信息可能包括数据库凭证、外部服务认证,甚至某些资源的位置。所有这些都统称为密钥。应用程序需要一个安全的地方来存储这些密钥,无论是在应用程序启动时还是在空闲时。在本章中,我们将讨论使用Kubernetes和Vault进行密钥管理。

第13章Quarkus REST客户端;使用任何基于服务的架构都不可避免地需要你与外部服务进行通信。这些服务可能是内部服务(你控制服务的生命周期,它们通常部署在同一个集群中)也可能是外部服务(第三方服务)。

如果这些服务是以RESTful Web服务的形式实现的,那么你需要一个客户端来与这些服务进行交互。Quarkus提供了两种方式来实现这一点;JAX-RS Web Client,这是标准的Java EE与RESTful服务通信的方式;MicroProfile REST Client,这是与RESTful服务通信的新方式。

本章涵盖以下主题:

·使用JAX-RS Web客户端与其他RESTful服务进行通信

·使用MicroProfile Rest Client与其他RESTful服务进行通信

·确保RESTful服务之间的通信

第14章使用Spring API开发Quarkus应用程序;到目前为止,你已经看到每个例子都是使用CDI注解开发的,如@Inject、@Produces、JAX-RS注解或Java EE Security注解。但是Quarkus也为一些最常用的Spring库提供了一个兼容层,以便你可以使用所有关于Spring框架的知识来开发Quarkus应用程序。

本章涵盖以下主题:

·Spring依赖注入

·Spring REST Web

·Spring Data JPA

·Spring Security

·Spring Boot配置

第15章使用响应式编程模型;我们都熟悉几十年来在企业软件开发中占主导地位的客户端-服务器(CS)架构。然而,我们最近在架构风格上发生了转变。除了标准的CS方法,还有消息驱动的应用程序、微服务、响应式应用程序,甚至无服务器应用程序!所有这些类型的应用程序都可以使用Quarkus创建。在下面的内容中,你将学习关于响应式编程模型、消息总线和流的知识。

第16章Quarkus的附加功能;本章包含了一些不适合放在其他章节中介绍的Quarkus功能。当然,这并不意味着它们没有用!本章涵盖以下主题:

·Quarkus的模板解决方案:Qute

·OpenAPI集成

·发送电子邮件

·调度功能

·应用程序数据缓存

本文目标读者

显然,我们希望每个人都能阅读本文!不过,我们的目标读者需要:

熟悉Java和应用程序开发。

了解传统的软件开发。

经常将服务部署到机器集群或云中。

Quarkus框架的简单体验 以上就是今天要讲的内容,本文仅仅简单介绍了Quarkus项目的初始化创建,而Quarkus的资料国内较少,如果对Quarkus框架感兴趣,请参考Quarkus框架的官方文档(中文官方文档地址。 阅读详情

相关推荐

java主流框架

java主流框架

qq_47360019的博客 5107

转:2016年7款最佳 Java 框架推荐

RebelLabs的一项调查显示,通过在线Java用户论坛(虚拟JUG)媒体联盟的调查统计,2016年度最佳Java框架阵容如下:数据来源:RebelLabs for Zero TurnAround Inc. 我们不会仅仅基于上面图标的对比迫使你或让你草率作出结论,但是我们会给你介绍每个概念的概述,供你分析和对比他们之间的区别,然后根据你的项目选择最完...

weixin_33965305的博客 356

【头歌实训:逆置顺序表】

根据提示,在右侧编辑器补充函数rev的代码,使用顺序表L的空间就地逆置L。},要求时间复杂度为O(n),空间复杂度为O(1)。第一行为顺序表逆置之前的元素。每个数据后一个空格。第二行为顺序表逆置之后的元素。每个数据后一个空格。本关任务:设计一个算法,将一个顺序表L的元素{a。第一行为顺序表中元素个数n。第二行为空格隔开的n个整数。开始你的任务吧,祝你成功!

guang_Lee的博客 998

2025年预计将主导的五大Java框架

展望2025年,Java框架的格局将比以往更加创新。随着云原生技术、微服务和响应式编程的进步,尽管Java已经有些年头,但它仍在不断适应和发展。到2025年,开发人员可以期待更快、更高效且更符合现代开发需求的框架。让我们仔细看看预计在2025年引领潮流的五大Java框架,每个框架都提供了独特的功能和能力,以应对现代应用开发的挑战和需求。

qq_28791753的博客 1万+

立创EDA实战:基于NE555的夜间氛围呼吸灯电路设计与模式切换

本文详细介绍了使用立创EDA设计基于NE555芯片的夜间氛围呼吸灯电路。项目核心是利用NE555产生PWM信号,并通过RC充放电电路实现LED亮度的缓慢周期性变化,形成呼吸效果。文章手把手教学,涵盖从电路原理分析、元件参数计算,到在立创EDA中进行原理图绘制、PCB布局布线,直至焊接调试的完整硬件设计流程,是电子爱好者入门实战的经典项目。

weixin_42153793的博客 125

微电网模型Matlab Simulink,风光储微电网,永磁风机并网仿真,光伏并网仿真,蓄电池仿真

通过探究风光储微电网、永磁风机并网仿真、光伏并网仿真、蓄电池仿真、柴油发电机以及光储微电网和风储微电网等方面的技术,我们可以更好地理解微电网的工作原理和优化方法,从而为微电网的发展做出更大的贡献。微电网模型Matlab Simulink,风光储微电网,永磁风机并网仿真,光伏并网仿真,蓄电池仿真,柴油发电机,光储微电网 风储微电网 Matlab仿真平台搭建的风光储微电网模型,风光柴储微电网,pwm控制,风力发电,光伏发电,微电网并网离网切换,并网孤岛切换,功能强大。永磁风机的并网仿真是一个非常重要的环节。

sjbextz的博客 399

2024中使用的10个最佳Java框架,这可能是目前最全的

如果您已经与JSP合作,则学习Wicket将成为Cakewalk。一个简单的Java Web框架,Wicket有一个面向组件的结构,您需要知道的只是Java和HTML。绝对没有XML或配置文件!Wicket的主要特点是IT POJO模型,其中组件很简单(普通旧的)Java对象具有OOP功能。这些组件作为可重用包作为可重用包,其中包含图像,按钮,表单,链接,页面,容器,行为等,以便开发人员可以自定义它们。Wicket是轻量调,您可以确保建立应用程序。它也很容易在检票口中编写的单元测试代码。

2401_84023604的博客 6402

2021秋招IC验证面经-ARM中国/中科芯/飞腾/地平线/中兴

中科芯 (央企福利待遇好,但是百分百不解决户口,适合当地人进去躺平。) 现场面试,三个面试官,时间大约40min 首先介绍一下自己,介绍一下项目。所做项目用到了FIFO吗,深度是多少,位宽是多少,仲裁算法是什么? 验证环境中的reference model是自己写的还是本身就有的,仲裁怎么在参考模型中实现,参考模型怎么获取寄存器的值? 怎么配置RTL寄存器,通过平台的寄存器模型进行寄存器配置,寄存器模型里边的方法,写一个寄存器或读一个寄存器怎么实现? 寄存器如何实现前门访问和后门访问,后门访问时

weixin_48014653的博客 6319

2025年Java主流开发框架及项目选型指南

Java项目的技术框架选型需综合考虑性能、开发效率、云原生适配性、生态成熟度及团队技术栈匹配度。从前端、后端、数据库、持久层四大维度,详细对比Java主流框架的核心特性、优缺点及适用场景,帮助开发者根据具体需求做出最优决策。

yinzheshijie的专栏 9506

temu登录接口逆向分析(含Py纯算)

【代码】temu登录接口逆向分析(含Py纯算)

数据精灵喵 1946

RS485两线制接线实战:从差分信号原理到Modbus避坑指南

本文深入解析RS485两线制接线的核心原理与实战步骤。从差分信号的抗干扰机制出发,详细拆解总线规划、屏蔽层接地、终端电阻安装等关键实操细节,并针对Modbus应用中常见的信号反射、极性接反、共模干扰等问题提供系统化的排查指南与解决方案,助力工程师构建稳定可靠的工业通讯网络。

7up55的博客 734

全新Java架构技术框架Quarkus实战神仙文档

Kubernetes已成为用于部署企业应用的事实平台。随着企业应用容器化和加速向Kubernetes平台迁移,原有的基于Java的应用程序在编码、部署和维护方式等方面发生了很大变化。如果不对Java应用程序做任何变更就直接容器化并运行,那么会遇到很多麻烦。由容器组成的Pod(Kubernetes中的一个术语)是Kubernetes中的基本调度单元,因此,为了避免入坑,深入理解如何正确地容器化Java应用程序是非常重要的。

公众号:该用户快成仙了 552

【IoT】 产品设计之结构设计:如何设计产品按键

1、硅胶按键功能实现有两种接触方式 1)硅胶按键按压在DOME片(锅仔片)上 通常用在手机、儿童手表手机、防水手机等防水设备上。 2)硅胶按键增加导电基,一种黑色的导电碳粒,实现回路导电 通常用在遥控器、电脑键盘、特殊设备上。 两种方式结构设计原理是一样的,按键的固定与配合间隙与行程要确保好。 2、硅胶遥控器按键的结构方式(导电基) 按键帽为大颗粒实心的,触点为黑色导电基,通过压注成型融合为一体,那么这种按键结构设计时需要注意那些呢? 最主要的是按键按压回弹的手感,由于没有DOME片实现

产品线负责人 8670

这10个流行的Java框架,很强!

框架的核心是一组预制代码,优先考虑程序中的易用性和一般可重用性。框架通常包括多种类型的现成代码,如类、函数和 UI 组件,使开发人员能够进一步扩展 Java 的功能。适当的框架使开发人员能够创建可靠且健壮的应用程序,而无需编写和完善每一行代码。此外,许多开发人员使用 Java 测试框架来确保一致和可靠的测试结果。本文将给大家介绍 10 个最流行的 Java 框架。

网络技术联盟站 2792

一文学会VOS2009对接网关指定走某个落地网关

介绍:  在我们日常使用VOS2009/3000的过程中,肯定会有很多落地网关与对接网关,并且某些时候还需要某些对接网关指定去走某个落地网关或者某些落地网关,从而实现比较精准的控制对接网关与落地网关的关系,下面就演示下在VOS2009/3000中如何配置某个对接网关指定走某个或者多个落地网关。 实现步骤:  VOS2009可以通过添加固定前缀的方式来指定对接网关走某个落地网关。 比如:  r1对接网关在被叫改写规则里面填写*:a*  r2对接网关在被叫改写规则里填写*:b* 1.登录VOS客户端 2.进入

非著名运维的博客 1963

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

2022年流行的Java框架有哪些?

Java开发已经成为很多互联网企业必不可少的岗位之一,对于初学Java的人来说,了解当前流行的Java框架很有必要。毕竟,任何框架都是有助于更快更好地开发软件解决方案的工具之一,下面,【Java进阶营】小编就给大家分享2022年流行的Java框架。 1. Spring Spring Java框架是一种流行的Java EE框架,既强大又轻量级,Spring使Java变得简单、现代、高效、反应性和云就绪,它的依赖注入和面向方面的编程能力是众所周知的。它是一组框架,使你能够完成任何复杂的工作,从数据库工作到测试

zihong522的博客 3433

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

Quarkus

作为一名Java程序员,如何适应目前的容器化趋势?将现有SpringBoot应用编译构建制作成docker镜像,然后运行在kubernetes环境,这也是我目前在实际项目中的做法,但也面临的诸多困扰:启动慢:一个应用从启动到服务可用,一般是数秒,在对CPU核数和内存严格限制的情况下,花数十秒启动的情况也屡见不鲜,这样的问题无法适应需要快速重启或快速扩容的场景。

weixin_62812758的博客 683

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

Java 有哪些流行的开发框架

Spring 不仅是一个框架,它是一个完整的生态系统,包括支持框架和工具,几乎涵盖了应用开发的各个方面,并确保应用程序可以高效地开发、测试和扩展。:GWT 是一个用于客户端开发的开源 Java 框架,广泛用于开发类似 JavaScript 的应用程序。:Blade 是一个简单、轻量级的 Java 框架,以其快速创建 Web 应用程序的能力而突出,特别适合需要快速开发和部署的场景。:Netty 是一个开源的、异步的、基于事件驱动的网络通信框架,用于开发高性能、高可靠性的网络服务器和客户端程序。

1394

最新Java通用流行框架大全,2024年抓住金三银四涨薪好时机

学习技术一定要制定一个明确的学习路线,这样才能高效的学习,不必要做无效功,既浪费时间又得不到什么效率,大家不妨按照我这份路线来学习。大家不妨直接在牛客和力扣上多刷题,同时,我也拿了一些面试题跟大家分享,也是从一些大佬那里获得的,大家不妨多刷刷题,为金九银十冲一波!刷刷题,为金九银十冲一波![外链图片转存中…(img-AaJ1Zd4E-1709720970440)][外链图片转存中…(img-zs6qpz9S-1709720970440)]点击传送门,即可免费领取!

Y1567409的博客 920

java、最新技术

GraalVM:GraalVM 是一款基于 Java 虚拟机(JVM)的高性能语言运行时,它可以运行 Java、Scala、Kotlin、JavaScript 和其他语言的代码。Project Loom:Project Loom 是一个计划中的 Java 平台项目,旨在通过引入协程、轻量级线程和可控制的阻塞来提高 Java 的并发性能。Kotlin:虽然 Kotlin 不是最新的语言,但它正在迅速赢得 Java 开发者的支持,因为它具有更简洁、更安全和更易于维护的特点。

最帅程序猿的博客 1761

2024年Java进阶者的新篇章,2024Java通用流行框架大全

并发模型其实和分布式系统模型非常相似,在并发模型中是线程彼此进行通信,而在分布式系统模型中是进程彼此进行通信。然而本质上,进程和线程也非常相似。这也就是为什么并发模型和分布式模型非常相似的原因。分布式系统通常要比并发系统面临更多的挑战和问题比如进程通信、网络可能出现异常,或者远程机器挂掉等等。但是一个并发模型同样面临着比如 CPU 故障、网卡出现问题、硬盘出现问题等。因为并发模型和分布式模型很相似,因此他们可以相互借鉴,例如用于线程分配的模型就类似于分布式系统环境中的负载均衡模型。

2401_83411843的博客 1556

今年7款最佳 Java 框架

毫无疑问,Java 是目前最为流行的编程语言之一,这里我们挖掘出了一些比较受欢迎的框架的有效信息,它们可以减轻全球软件开发人员的日常工作。

weixin_56035688的博客 1479
上一篇: 火爆Boss直聘的百页SpringBoot原理实战+面试题助你狂拿千份offer
下一篇: 对标阿里P8的MyBatis源码解析文档,面试/涨薪两不误,已献出膝盖
Java技术那些事儿
博客等级 码龄5年 2306粉丝 2584原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值