当前位置:首页 > 天道酬勤 > 正文内容

()

张世龙2021年12月21日 16:42天道酬勤360

前言

Quarkus是一种与传统的Java体系结构不同的新技术框架。 它使用了成熟的技术,如JPA、JAX-RS、EclipseVert.x、Eclipse微软和CDI,并与Kubernetes紧密集成。 用户可以利用Kubernetes的高效调度运输能力,最大限度地节约资源。

云母语星星之火在开源社区Kubernetes走红后,形成燎原之势,随后云母语相关技术如雨后春笋般涌现。

本文采用了非常简单的问题-解决方案-讨论的结构,详细而透彻地描绘了Quarkus的技术点。 通过本文,用户可以利用Quarkus提高Java相关的研发效率,在快节奏的微服务构建和基于云的APP开发领域奠定不输的地位。

目录

主要内容

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

第1章Quarkus的概要; Kubernetes已经成为部署企业APP的一个事实上的平台。 随着企业APP的容器化和向Kubernetes平台的加快转移,传统的基于Java的APP应用在编码、部署和维护方法等方面发生了巨大的变化。 如果在不对Java APP应用程序进行任何更改的情况下将其容器化并运行,将会发生许多故障。 由于由容器构成的pod(Kubernetes术语)是kubernetes的基本调度单元,因此为了避免入坑,深入理解正确地将Java APP应用容器化的方法是很重要的。

Quarkus是与Kubernetes集成的开源云本机框架,基于Apache许可证2.0发布,基于Hibernate和eclipse微配置文件提供GraalVM和oporkus

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

在第2章作为基础的本章中,您将学习如何创建Quarkus的项目结构。 Quarkus有几种不同的方法来建立项目的立足点。

本章内容如下。

从Maven到VSCode IDE,用不同的方法构筑项目的立足点通过实时重载改善开发者的体验使用Quarkus提供静态资源 )。

第3章rest风格的服务开发Quarkus与用于定义REST API的JAX-RS实现RESTEasy进行了集成。 本章学习如何在Quarkus中开发rest风格的web服务。 本章内容如下。

如何使用JAX-RS创建CRUD服务,如何启用CORS向其他域请求资源,如何实现响应型路由,如何实现过滤器来操作请求和响应

第4章配置本章的内容如下。

如何配置Quarkus服务器,如何向服务器注入配置参数,如何在不同环境中使用配置值,如何正确配置日志系统,如何创建自定义配置系统

847b4041af3e8826?from=pc">

第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依赖注入jddfj配置

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

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

·Quarkus的模板解决方案:Qute·OpenAPI集成·发送电子邮件·调度功能·应用程序数据缓存

需要这份2021年全新java架构技术框架【Quarkus实战:专为Kubernetes而优化的Java解决方案】要减肥的香水文档的小伙伴,可以转发此文关注小编,私信小编【学习】二字来获取!

本文目标读者

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

熟悉Java和应用程序开发。了解传统的软件开发。经常将服务部署到机器集群或云中。

扫描二维码推送至手机访问。

版权声明:本文由花开半夏のブログ发布,如需转载请注明出处。

本文链接:https://www.zhangshilong.cn/work/26433.html

分享给朋友:

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。