Quarkus 雲原生微服務開發實戰

Quarkus 雲原生微服務開發實戰

作者: 成富
出版社: 機械工業
出版在: 2021-09-01
ISBN-13: 9787111689553
ISBN-10: 7111689550
裝訂格式: 平裝
總頁數: 298 頁





內容描述


《Quarkus雲原生微服務開發實戰》以一個完整的實戰應用的開發過程作為主線,
介紹如何以Quarkus為框架來開發微服務架構的雲原生應用。
書中介紹了微服務和雲原生開發的各個方面,包括微服務的開發和測試以及在Kubernetes上的部署運行,
還包括應用的可觀察性、安全和服務調用的健壯性等非功能性需求。
通過本書的介紹,讀者可以了解一個真實的雲原生應用的開發過程,
並學會如何從頭開始開發個人的應用。
《Quarkus雲原生微服務開發實戰》
適合從事Quarkus雲原生微服務開發以及對雲原生微服務感興趣的Java開發人員閱讀。


目錄大綱


目錄
前言
第1章 雲原生微服務概述
1.1 了解微服務架構
1.1.1 了解單體應用存在的問題
1.1.2 微服務架構概述
1.1.3 雲原生與微服務架構
1.1.4 雲原生的發展趨勢
1.2 了解容器化技術
1.3 了解容器編排技術
1.3.1 使用Docker進行簡單的編排
1.3.2 使用Docker Compose進行編排
1.3.3 Kubernetes介紹
1.4 Quarkus介紹
第2章 Quarkus開發入門
2.1 創建新的項目
2.2 通用的應用開發流程
2.2.1 使用開發模式
2.2.2 調試應用
2.2.3 實用的插件命令
2.3 源代碼組織
2.4 實戰應用介紹
2.5 微服務的設計
第3章 Quarkus的依賴注入
3.1 CDI中的Bean 及其作用域
3.2 使用依賴注入
3.2.1 了解不同的依賴注入方式
3.2.2 注入@Dependent作用域的Bean
3.2.3 獲取注入點的元數據
3.3 Bean的使用
3.3.1 使用修飾符區分相同類型的Bean
3.3.2 使用生產方法和字段創建Bean
3.3.3 使用默認Bean和替代Bean
3.3.4 在代碼中選擇Bean實例
3.4 使用攔截器實現橫切的業務邏輯
3.5 使用事件進行消息傳遞
3.5.1 同步的事件發布和處理
3.5.2 異步的事件發布和處理
3.5.3 使用修飾符來區分事件
3.5.4 獲取事件的元數據
3.6 Quarkus的CDI實現
3.6.1 共享代碼中Bean的發現
3.6.2 Bean的特殊處理
3.6.3 客戶端代理的使用
第4章 Quarkus微服務的配置
4.1 使用配置源
4.1.1 Quarkus提供的默認配置源
4.1.2 使用YAML格式的配置文件
4.1.3 創建自定義的配置源
4.1.4 生成Quarkus框架的配置文件
4.1.5 使用外部配置源
4.2 獲取配置項的值
4.3 使用類型安全的配置類
4.3.1 綁定配置類中的字段
4.3.2 綁定配置接口中的方法
4.3.3 驗證配置項的值
4.4 通過配置Profile區分不同的環境
4.5 配置項的類型轉換
4.6 Kubernetes上的Quarkus應用配置
第5章 同步調用方式——餐館微服務
5.1 訪問關係型數據庫
5.1.1 創建數據源
5.1.2 使用Flyway遷移數據庫模式
5.1.3 使用JPA和Hibernate訪問數據庫
5.1.4 使用Panache簡化數據庫訪問
5.1.5 服務層實現
5.1.6 事務管理
5.1.7 分頁和排序
5.2 發布REST API
5.2.1 使用JAX-RS註解標註REST控制器
5.2.2 使用JSON格式進行序列化
5.3 微服務的單元測試
5.3.1 數據訪問層測試
5.3.2 服務層測試
5.3.3 REST API測試
5.4 生成OpenAPI文檔
5.5 消費其他微服務的REST API
5.6 使用Elasticsearch檢索菜單
5.7 使用Redis執行地理位置查詢
5.8 使用Quarkus測試資源
第6章 異步消息傳遞——訂單微服務實現
6.1 發布gRPC API
6.1.1 使用protobuf描述消息格式
6.1.2 創建gPRC的接口定義
6.1.3 實現gRPC API
6.1.4 消費其他微服務的gRPC API
6.2 異步消息傳遞
6.2.1 異步消息傳遞概述
6.2.2 事件、命令和消息的含義
6.2.3 數據的最終一致性
6.2.4 使用Apache Kafka傳遞消息
6.2.5 事務性消息
6.3 使用WebSocket
第7章 反應式微服務——送貨微服務實現
7.1 反應式編程概述
7.2 使用Mutiny進行反應式編程
7.2.1 Mutiny中的事件
7.2.2 創建Uni和Multi對象
7.2.3 處理Multi和Uni中的元素
7.2.4 訂閱反應式流
7.3 反應式數據訪問
7.4 開發反應式REST API
7.4.1 使用RESTEasy
7.4.2 創建反應式路由
7.4.3 上傳文件
7.5 開發反應式gRPC
7.6 使用反應式消息
7.6.1 SmallRye反應式消息庫的基本用法
7.6.2 使用Kafka作為消息代理
7.6.3 送貨微服務的實現
7.6.4 反應式消息的單元測試
第8章 Quarkus應用部署
8.1 應用打包方式
8.1.1 使用JVM模式
8.1.2 創建原生可執行文件
8.2 創建容器鏡像
8.3 部署到Kubernetes
8.3.1 發布Docker鏡像
8.3.2 容器鏡像的標籤
8.3.3 創建Kubernetes部署資源
8.3.4 完整的應用部署
8.3.5 持續集成與部署
第9章 應用的可觀察性
9.1 健康檢查
9.1.1 MicroProfile Health規範
9.1.2 自定義的健康檢查過程
9.1.3 SmallRye Health的擴展功能
9.2 分佈式追踪
9.2.1 分佈式追踪的基本概念
9.2.2 追踪JAX-RS和gRPC
9.2.3 使用OpenTracing API
9.3 性能指標數據
9.3.1 使用Micrometer
9.3.2 使用Prometheus
9.4 日誌管理與異常處理
9.4.1 記錄日誌和相關配置
9.4.2 使用MDC傳遞數據
9.4.3 使用Sentry記錄異常
第10章 應用安全及彈性服務
10.1 用戶管理
10.2 身份認證


作者介紹


成富 
北京大學,碩士,全棧工程師。
專注於基於雲原生微服務架構的產品設計和開發,有14年從業經驗.
參與過很多企業級應用的設計與開發。
出版過《深入理解Java 7》和《Exploring Java 9》等圖書,
在拉勾網開設了與雲原生微服務相關的專欄。




相關書籍

微服務分佈式架構基礎與實戰——基於SpringBoot+SpringCloud

作者 張方興

2021-09-01

Refactoring HTML: Improving the Design of Existing Web Applications (Hardcover)

作者 Elliotte Rusty Harold

2021-09-01

HTML5 混合 App 開發

作者 黑馬程序員

2021-09-01