前言
读者对象
本书适合对Quarkus 感兴趣且想在这方面获得更多知识或者实现更多想法的IT从业者。
初级读者,可以通过本书知道如何使用Quarkus 进行Web、Data和Message方面的开发,能非常迅速、高效、简单地搭建一个微服务应用系统。
中级读者,如有着丰富开发经验的软件开发工程师等,可以通过本书获得全面的对Quarkus 的认识,能构建安全的、集成的、伸缩性和容错能力强的云原生应用。
高级读者,如有着丰富经验的架构师和分析师,可以通过本书知道 Quarkus 的核心特性,能利用这些特性游刃有余地构建响应式的、高可靠的、高可用的、维护性强的云原生架构体系。
本书尤其适合在 Spring 上已经有经验积累的工程师,他们几乎可以零成本地又掌握一套基于 Java语言的云原生开发工具。从笔者的角度来看,Quarkus 非常容易上手,读者如果有一些工作经验,曾经用类似的工具(如 Spring 等)进行过软件开发,那么将能非常快速地掌握Quarkus 的使用方法。
本书定位
本书是一本 Quarkus 开发指南,简单地说,就是告诉读者如何快速、高效和精准地进行Quarkus 开发。本书中实践内容占九成,而理论知识提及较少,因此本书是一本实践性和可操作性强的图书。本书既可以作为学习 Quarkus 的教程,也可以作为架构师的参考手册,以备不时之需。
本书以案例为基础,包含了案例程序的源码、讲解和验证。针对各个案例,笔者并没有简单地贴源码,而是以源码、图示和文字说明相结合的方式进行了详细解析,帮助读者理解案例总体思路和设计意图。
Quarkus 官网上有非常多案例,让人眼花缭乱,那么笔者为什么会选择书中的这些案例进行讲解呢?这是因为笔者根据自己的实际工作经验进行了筛选。如果要开发一个云原生微服务应用,那么需要网络支持、数据支持(包括关系型数据库、缓存数据库、NoSQL 数据库等)和安全框架,实现这些基本上就能够完成一个云原生微服务系统的大部分功能。如果涉及异步处理或事件处理,还可以加上一个消息组件或流组件。更进一步地,如果还有更高级的用法,那就接着添加容错、监控、非阻塞等组件。上述这些知识基本上都被笔者精选的案例所囊括。可以说,笔者选择的案例已经可以覆盖80%~90%的云原生微服务应用开发相关内容。
本书中反复提及 Java的规范和标准。在 IT世界中,各种开源平台和产品层出不穷,而且进行着快速迭代。学习每个平台和产品都需要时间成本和投入精力,但是很多时候往往是,开发者非常辛苦地学习了一套平台的用法,没想到稍过一段时间,就发现所学技术或技能已经落后。而在 Java 领域中,学习相关规范和标准能让学习成本变低,让我们更快、更容易地学习技术和技能。
如何使用本书
本书中的每个案例都是一个故事,讲故事有很多种方法,就好似不同的导演拍同一个电影题材所展现给观众的故事都不一样。笔者讲故事的总体思路是这样的:首先概述这个故事的目的、组成、环境(上下文);然后重点分析这个故事的要点及实现,还会提供一两张图来描述整个故事的发展过程;最后笔者会给出验证环节的实现。这样读者花非常少的时间和精力就可以进行具体的实践。
本书还是一本软件编程书。编程是一项实践性强的活动,讲 100 句道理也不如写上 10 行代码。本书中的每个案例都有验证环节,也就是让读者亲手实践,而且针对这些环节,笔者还准备了相关代码,读者可以看到结果是否与设想一致。读者也许很容易就能看明白书中的文字和图示部分,可是具体实操时,却发现好像不是那么回事,笔者也曾经历过这样的事。因此,要不断地分析、排错,在踩过无数个“坑”后,最终实现自己想要的效果。笔者笃信:纸上得来终觉浅,绝知此事要躬行。这也是编程的真谛。
在开始具体的案例之旅前,笔者强烈建议读者阅读第 2 章的“2.4 应用案例说明”一节,其中包含了各个具体案例的总体说明,是关于所有案例的应用场景、原则和规则的通用说明。读者若能明白这些内容,就能更轻松、方便、高效地理解各个案例的核心含义,从而达到事半功倍的效果。
本书结构
本书总共 12 章,首先是 Quarkus 概述,可以让读者从整体上认识 Quarkus;其次是对Quarkus 的初探;再次是本书的主要部分,将详细讲解如何在 Quarkus 中进行 Web、Data、Message、Security、Reactive、Tolerance、Health、Tracing、Spring集成等应用场景的开发和实现;接着将介绍 Quarkus 在云原生应用场景下的实施和部署;最后引出一个更高级的话题——Quarkus Extension。各章简介如下。
第1章 Quarkus 概述
首先将介绍 Quarkus 的概念和特征;其次将简单介绍 Quarkus 的整体优势;再次将阐述Quarkus 的适用场景、目标用户和竞争对手;接着将探讨为什么 Java开发者会选择 Quarkus;最后将介绍Quarkus 的架构和核心概念。
第2章 Quarkus 开发初探
首先将给出开发hello world微服务全过程;其次将介绍Quarkus 开发基础,主要使用6个基础开发案例来进行讲解;再次将介绍用Quarkus 实现GoF设计模式的案例;最后是对应用案例的整体说明,可以认为这部分内容是整本书实战案例的导读。
第3章 开发REST/Web应用
将分别介绍如何在Quarkus 中开发REST JSON服务、增加OpenAPI和SwaggerUI功能、编写GraphQL应用、编写WebSocket应用,包含案例的源码、讲解和验证。
第4章 数据持久化开发
将分别介绍如何在 Quarkus 中使用 Hibernate ORM和 JPA实现数据持久化、使用 Java事务、使用 Redis Client实现缓存处理、使用 MongoDB Client实现 NoSQL处理、使用 Panache实现数据持久化等,包含案例的源码、讲解和验证。
第5章 整合消息流和消息中间件
将分别介绍如何在 Quarkus 中调用 Apache Kafka消息流、创建 JMS应用实现队列模式、创建JMS应用实现主题模式和创建MQTT应用等,包含案例的源码、讲解和验证。
第6章 构建安全的Quarkus 微服务
首先将对微服务 Security进行概述并介绍 Quarkus 的 Security架构;其次将分别介绍如何在 Quarkus 中实现基于文件存储用户信息的安全认证、基于数据库存储用户信息并采用 JDBC获取的安全认证、基于数据库存储用户信息并用 JPA 获取的安全认证、基于 Keycloak 实现认证和授权、使用 OpenID Connect实现安全的 JAX-RS服务、使用 OpenID Connect实现安全的 Web 应用、使用 JWT 加密令牌、使用 OAuth 2.0 实现认证等,包含案例的源码、讲解和验证。
第7章 构建响应式系统应用
首先将简介响应式系统;其次将简介 Quarkus 响应式应用;再次将分别介绍如何在Quarkus 中创建响应式JAX-RS应用、响应式SQL Client应用、响应式Hibernate应用、响应式Redis应用、响应式MongoDB应用、响应式Apache Kafka应用、响应式AMQP应用等,包含案例的源码、讲解和验证;最后将介绍Quarkus 响应式基础框架Vert.x的应用,包含案例的源码、讲解和验证。
第8章 Quarkus 微服务容错机制
首先将简介微服务容错;然后将介绍如何在 Quarkus 中开发包括重试、超时、回退、熔断器和舱壁隔离等微服务容错的应用,包含案例的源码、讲解和验证。
第9章 Quarkus 监控和日志
首先将介绍 Quarkus 中的健康监控,其次将介绍 Quarkus 中的监控度量,最后将介绍Quarkus 中的调用链日志。这些应用都包含案例的源码、讲解和验证。
第10章 集成Spring到Quarkus 中
将分别介绍如何在Quarkus 中整合Spring的DI功能、Web功能、Data功能、安全功能,以及获取Spring Boot的配置文件属性功能、获取Spring Cloud的Config Server配置文件属性功能,包含案例的源码、讲解和验证。
第11章 Quarkus 的云原生应用和部署
将分别介绍如何在 Quarkus 中构建容器镜像、生成 Kubernetes资源文件、生成 OpenShift资源文件、生成Knative资源文件等,包含案例的源码、讲解和验证。
第12章 高级应用——Quarkus Extension
首先将概述Quarkus Extension;然后将介绍如何创建一个Quarkus 扩展应用,包含案例的源码、讲解和验证;最后是一些关于Quarkus Extension的说明。
参考文献
将列出本书参考文献,以及本书中会涉及的基于 Quarkus 应用的软件或平台,如果读者需要了解更多细节,可以查阅相关文献和资料。
后记
Quarkus 还处于不断发展的过程中,本部分将告诉读者如何使本书中的案例与 Quarkus 版本保持同步更新。
勘误和支持
由于笔者水平有限,而且本书中所描述的产品也在快速发展过程中,因此书中的纰漏和错误在所难免,希望读者能给予批评和指正。
笔者的联系方式为rengang66@sina.com。
读者服务
微信扫码回复:41803
·获取本书配套代码和参考资料地址[1]
·加入“后端”交流群,与更多同道中人互动
·获取【百场业界大咖直播合集】(持续更新),仅需1元
[1] 请访问 http://www.broadview.com.cn/41803 下载本书提供的附加参考资料。正文中提及链接 1、链接 2 等时,可在下载的“参考资料.pdf”文件中进行查询。