Java 也可以 K8s:使用最新 Quarkus 打造新世代原生微服務
內容描述
從基礎到進階——Quarkus完整開發大全!
★專業推薦
中國紅帽首席架構師 張家駒
亞馬遜雲端科技專業顧問服務團隊經理 陳明儀
▍本書內容
Quarkus是一個來自Red Hat公司的超音速次原子Kubernetes原生Java框架。該框架允許Java開發人員結合容器、微服務和Kubernetes的能力來構建可靠、高性能、快速的雲端原生應用和Serverless應用。
本書是一本Quarkus開發大全,涵蓋Quarkus大部分內容,書中共包含50多個案例,共12章,第1章是Quarkus概述,可以從整體上認識Quarkus;第2章是對Quarkus的初探,將使用Quarkus構建一個微服務並開發基礎應用;第3章至第10章是本書的主要部分,將詳細講解如何在Quarkus架構上進行Web、Data、Message、Security、Reactive、Tolerance、Health、Tracing、Spring整合應用場景的開發和實作;第11章介紹Quarkus在雲端原生應用場景下的實施和部署;第12章是Quarkus Extension,進階開發者在Quarkus的基礎上擴充外部元件。本書適合想在Quarkus獲得更多知識或實現更多新創方式的IT工程師,針對Spring框架已經有經驗的工程師更是如虎添翼。
▍本書特點
.Java工程師用K8s探索微服務的先驅Quarkus概述
.Quarkus中進行Web開發完整專案
.資料驅動的Quarkus案例實作
.Message系統的案例架設
.Security安全考量的微服務專案
.Reactive的整合場景
.Tolerance在Quarkus的應用場景
.Health的企業專案開發
.Tracing場景下的微服務應用
.Spring整合應用場景
.Quarkus在雲端原生實施部署
.Quarkus Extension進一步使用
※適合讀者群
本書適合對Quarkus感興趣且想在這方面獲得更多知識或實現更多想法的IT從業者。
.初級讀者:可以透過本書知道如何使用Quarkus進行Web、Data和Message方面的開發,能非常迅速、高效、簡單地架設一個微服務應用系統。
.中級讀者:如具有豐富開發經驗的軟體開發工程師等,可以透過本書獲得對Quarkus的全面認識,能建構安全的、整合的、伸縮性和容錯能力強的雲端原生應用。
.進階讀者:如具有豐富經驗的架構師和分析師,可以透過本書知道Quarkus的核心特性,能利用這些特性遊刃有餘地建構響應式的、高可靠的、高可用的、維護性強的雲端原生架構系統。
.在Spring上已經有經驗累積的工程師:幾乎可以零成本地又掌握一套基於Java語言的雲端原生開發工具。讀者如果有一些工作經驗,曾經用類似的工具(如Spring等)進行過軟體開發,那麼將能非常快速地掌握Quarkus的使用方法。
目錄大綱
第1章 Quarkus概述
1.1 Quarkus的概念和特徵
1.2 Quarkus的整體優勢
1.3 Quarkus的適用場景、目標使用者和競爭對手
1.4 為什麼Java開發者會選擇Quarkus
1.5 Quarkus的架構和核心概念
1.6 本章小結
第2章 Quarkus開發初探
2.1 開發hello world微服務全過程
2.2 Quarkus開發基礎
2.3 GoF設計模式的Quarkus實現
2.4 應用案例說明
2.5 本章小結
第3章 開發REST/Web應用
3.1 撰寫REST JSON服務
3.2 增加OpenAPI和SwaggerUI功能
3.3 撰寫GraphQL應用
3.4 撰寫WebSocket應用
3.5 本章小結
第4章 資料持久化開發
4.1 使用Hibernate ORM和JPA實現資料持久化
4.2 使用Java交易
4.3 使用Redis Client實現快取處理
4.4 使用MongoDB Client實現NoSQL處理
4.5 使用Panache實現資料持久化
4.6 本章小結
第5章 整合訊息流和訊息中介軟體
5.1 呼叫Apache Kafka訊息串流
5.2 建立JMS應用實現佇列模式
5.3 建立JMS應用實現主題模式
5.4 建立MQTT應用
5.5 本章小結
第6章 建構安全的Quarkus微服務
6.1 微服務Security概述
6.2 Quarkus Security架構
6.3 以檔案儲存使用者資訊為基礎的安全認證
6.4 以資料庫儲存使用者資訊並用JDBC獲取為基礎的安全認證
6.5 以資料庫儲存使用者資訊並用JPA獲取為基礎的安全認證
6.6 以Keycloak為基礎實現認證和授權
6.7 使用OpenID Connect實現安全的JAX-RS服務
6.8 使用OpenID Connect實現安全的Web應用
6.9 使用JWT加密權杖
6.10 使用OAuth 2.0實現認證
6.11 本章小結
第7章 建構響應式系統應用
7.1 響應式系統簡介
7.2 Quarkus響應式應用簡介
7.3 建立響應式JAX-RS應用
7.4 建立響應式SQL Client應用
7.5 建立響應式Hibernate應用
7.6 建立響應式Redis應用
7.7 建立響應式MongoDB應用
7.8 建立響應式Apache Kafka應用
7.9 建立響應式AMQP應用
7.10 Quarkus響應式基礎框架Vert.x的應用
7.11 本章小結
第8章 Quarkus微服務容錯機制
8.1 微服務容錯簡介
8.2 Quarkus容錯的實現
8.3 本章小結
第9章 Quarkus監控和日誌
9.1 Quarkus的健康監控
9.2 Quarkus的監控度量
9.3 Quarkus的呼叫鏈日誌
9.4 本章小結
第10章 整合Spring到Quarkus中
10.1 整合Spring的DI功能
10.2 整合Spring的Web功能
10.3 整合Spring的Data功能
10.4 整合Spring的安全功能
10.5 獲取Spring Boot的設定檔屬性功能
10.6 獲取Spring Cloud的Config Server設定檔屬性功能
10.7 本章小結
第11章 Quarkus的雲端原生應用和部署
11.1 建構容器映像檔
11.2 生成Kubernetes資源檔
11.3 生成OpenShift資源檔
11.4 生成Knative資源檔
11.5 本章小結
第12章 進階應用——Quarkus Extension
12.1 Quarkus Extension概述
12.2 建立一個Quarkus擴充應用
12.3 一些關於Quarkus Extension的說明
12.4 本章小結
A後記
B參考文獻
C本書連結
作者介紹
任鋼
教授級高級工程師,架構設計師、系統分析師和資訊專案管理師。擁有二十餘年的軟體開發和架構設計經驗,承擔過上百個軟體專案的規劃、設計、開發和交付工作。現在在某互聯科技公司擔任首席架構師,主要業務方向是提供企業數位化轉型、行業互聯網(物聯網)、雲原生體系、微服務架構等的諮詢服務。