Spring Boot + Spring Cloud + Docker 微服務架構開發實戰

Spring Boot + Spring Cloud + Docker 微服務架構開發實戰

作者: 李曉黎
出版社: 人民郵電
出版在: 2021-12-01
ISBN-13: 9787115576590
ISBN-10: 7115576599
裝訂格式: 平裝
總頁數: 283 頁





內容描述


Spring Boot + Spring Cloud + Docker是目前國內相關領域工程人員搭建微服務架構的主要解決方案之一,它基於的是流行的Java開發框架——Spring,現已成為微服務架構的首選技術方案。
本書通過大量案例介紹使用Spring Boot + Spring Cloud + Docker開發微服務架構(應用程序)的方法,包括開發服務註冊中心程序、服務提供者程序、服務消費者程序、認證服務、API網關等組件,進而搭建完整的微服務架構。為了便於初學者學習和理解相關內容,編者大量使用流程圖和架構圖對問題進行描述和講解;同時,精選“秒殺搶購”案例,使讀者直觀地瞭解微服務架構在實際應用程序開發工作中的應用,提升讀者的實戰技能。
本書可作為高等院校相關課程的教材,也可作為廣大互聯網應用程序開發人員的參考書。


目錄大綱


章名目錄:
第 1章 微服務架構概述
第 2章 Spring Boot和Spring Cloud編程基礎
第3章 服務註冊中心程序開發
第4章 服務提供者程序開發
第5章 服務消費者程序開發
第6章 認證服務開發
第7章 微服務的容錯保護機制
第8章 API網關
第9章 微服務配置中心
第 10章 微服務架構的消息機制
第 11章 利用Docker容器化部署微服務應用

詳細目錄:
第 1章 微服務架構概述
1.1 軟件系統架構 01
1.1.1 電腦硬件發展對軟件系統架構的影響 01
1.1.2 軟件系統架構的演進 03
1.2 主流微服務架構解決方案 08
1.3 開發環境和測試環境 10
1.3.1 開發環境 11
1.3.2 測試環境 14
本章小結 25
習題1
第 2章 Spring Boot和Spring Cloud編程基礎
2.1 Spring框架 27
2.1.1 Spring框架的體系結構 27
2.1.2 一個簡單的Maven項目案例 29
2.1.3 IoC容器 32
2.1.4 註解 36
2.2 Spring Boot編程基礎 41
2.2.1 Spring與Spring Boot的關系 41
2.2.2 開發一個簡單的Spring Boot應用程序 41
2.2.3 基於Spring Boot開發MVC Web應用程序 45
2.2.4 利用Thymeleaf模板引擎實現動態頁面 50
2.2.5 記錄日誌 54
2.2.6 通過MyBatis訪問MySQL數據庫 57
2.2.7 以Jar包形式運行Spring Boot應用程序 64
2.3 Spring Cloud概述 65
2.3.1 Spring Cloud家族的成員 65
2.3.2 Spring Cloud與Spring Boot的 關系 67
2.3.3 Spring Boot與Spring Cloud的 版本 67
本章小結 69
習題2
第3章 服務註冊中心程序開發
3.1 Spring Cloud Eureka的服務註冊機制 71
3.2 開發基於Eureka的服務註冊中心程序 72
3.2.1 本章案例項目 72
3.2.2 啟動類 73
3.2.3 Eureka服務註冊中心的主頁 73
3.2.4 配置文件 75
3.2.5 Eureka的高可用性 78
3.2.6 部署Eureka服務註冊中心 78
3.2.7 以服務形式運行Eureka Server 82
本章小結 84
習題3
第4章 服務提供者程序開發
4.1 開發基於RESTful架構的Web服務 86
4.1.1 RESTful架構概述 86
4.1.2 開發RESTful服務 87
4.1.3 實現POST方法 88
4.1.4 實現PUT方法 88
4.1.5 實現DELETE方法 89
4.1.6 以JSON格式傳遞數據 89
4.2 開發Spring Cloud資源服務 91
4.2.1 註冊到Eureka Server 91
4.2.2 案例:開發用戶系統服務 91
4.2.3 使用Postman測試服務提供者程序 99
本章小結 104
習題4
第5章 服務消費者程序開發
5.1 準備服務提供者實例環境 105
5.1.1 對User服務進行適當的改造 105
5.1.2 為User服務部署多個實例 106
5.2 Spring Cloud Ribbon 107
5.2.1 負載均衡 107
5.2.2 Spring Cloud Ribbon編程基礎 109
5.3 Spring Cloud Feign 113
5.3.1 添加Feign依賴 113
5.3.2 項目的啟動類 114
5.3.3 @FeignClient註解 114
本章小結 116
習題5
第6章 認證服務開發
6.1 微服務架構的安全認證 118
6.1.1 認證服務器的作用 118
6.1.2 OAuth 2.0概述 119
6.2 開發基於OAuth 2.0的認證服務 122
6.2.1 與安全認證有關的數據庫表 122
6.2.2 認證服務項目 127
6.2.3 啟動類 129
6.2.4 MyBatis配置 129
6.2.5 用戶管理的實現 130
6.2.6 安全配置類 132
6.2.7 部署認證服務 135
6.2.8 使用Postman獲取access token 136
6.3 服務提供者程序的安全機制 137
6.3.1 服務提供者程序安全機制的工作原理 137
6.3.2 服務提供者程序的啟動類 138
6.3.3 資源服務配置類 138
6.4 在應用程序中獲取access token 140
6.4.1 在程序中以POST方法調用接口 140
6.4.2 在POST請求包頭中指定Basic Auth信息 141
6.4.3 在POST請求包中指定grant_type和scope參數 141
6.4.4 從認證服務獲取access token的案例 142
本章小結 144
習題6
第7章 微服務的容錯保護機制
7.1 Spring Cloud Hystrix概述 146
7.1.1 熔斷器的工作原理 146
7.1.2 Spring Cloud Hystrix的工作原理 147
7.2 準備服務提供者實例環境 148
7.2.1 對User服務進行適當的改造 148
7.2.2 為User服務部署多個實例 149
7.3 Spring Cloud Hystrix編程 149
7.3.1 在項目中啟用Hystrix組件 149
7.3.2 在Ribbon中應用Hystrix 150
7.3.3 在Feign中應用Hystrix 153
本章小結 155
習題7
第8章 API網關
8.1 Spring Cloud Zuul概述 157
8.2 Spring Cloud Zuul編程 158
8.2.1 在項目中啟用Zuul組件 158
8.2.2 在application.yml中配置Zuul 158
8.2.3 Zuul過濾器 159
8.2.4 通過Zuul服務器調用服務 162
8.2.5 設置Zuul網關的白名單 164
8.2.6 記錄訪問日誌 168
8.3 應用程序通過API網關調用服務接口 171
8.3.1 在應用程序中以GET方式調用接口 171
8.3.2 在應用程序中以POST方式調用接口 174
本章小結 179
習題8
第9章 微服務配置中心
9.1 Spring Cloud Config概述 180
9.2 Git基礎 181
9.2.1 Git的工作流程 181
9.2.2 註冊GitHub賬號 182
9.2.3 創建GitHub倉庫 182
9.2.4 在STS中上傳代碼至GitHub倉庫 182
9.3 開發配置中心的服務器 185
9.3.1 在項目中啟用Spring CloudConfig Server組件 185
9.3.2 共享Config Server的本地配置文件 186
9.3.3 使用Git管理配置文件 188
9.3.4 部署ConfigServerGit項目 190
9.4 開發配置中心的客戶端 191
9.4.1 pom依賴和啟動類 191
9.4.2 配置中心客戶端程序的配置文件 192
9.4.3 配置中心的客戶端程序案例 193
本章小結 195
習題9
第 10章 微服務架構的消息機制
10.1 應用程序的消息機制 196
10.1.1 單機應用程序的消息機制 196
10.1.2 分佈式應用程序的消息 機制 197
10.1.3 基於Redis實現分佈式消息 隊列 199
10.1.4 Spring Boot集成RabbitMQ 消息隊列 204
10.2 Spring Cloud Bus 213
10.2.1 Spring Cloud Bus的工作 原理 213
10.2.2 開發Spring Cloud Bus應用 程序 215
10.2.3 在配置中心中實現自動刷新 配置功能 215
10.3 通過Spring Cloud Stream收發消息 219
10.3.1 Spring Cloud Stream應用 程序模型 219
10.3.2 利用Spring Cloud Stream集成 RabbitMQ實現消息處理 220
10.4 消息隊列在秒殺搶購場景中的應用 224
10.4.1 秒殺搶購應用場景解析 225
10.4.2 傳統架構的高並發瓶頸 225
10.4.3 秒殺搶購解決方案 226
10.4.4 限流算法及其實現 228
10.4.5 秒殺搶購案例 230
本章小結 243
習題10
第 11章 利用Docker容器化部署微服務應用
11.1 容器化概述 244
11.1.1 Docker概述 244
11.1.2 Docker的基本概念 245
11.1.3 Docker與虛擬機的對比 246
11.2 Docker基礎 247
11.2.1 在CentOS中安裝Docker 247
11.2.2 使用Docker容器 249
11.2.3 搭建Docker Registry私服 253
11.2.4 使用Docker部署Spring Boot 應用程序 255
11.2.5 以Docker鏡像的形式運行 Eureka服務應用程序 259
11.2.6 在Docker中使用自定義的 配置文件 260
11.2.7 修改Docker容器中的配置 文件 262
11.2.8 容器中日誌的持久化 264
11.3 Docker Compose 267
11.3.1 Docker Compose的特性 267
11.3.2 在CentOS中安裝Docker Compose 267
11.3.3 Docker Compose中的層次 概念 268
11.3.4 docker-compose.yml配置 文件 268
11.3.5 Docker Compose的常用 命令 270
11.3.6 通過Docker Compose 搭建 微服務項目 271
本章小結 282
習題11


作者介紹


李曉黎:
1998年畢業於吉林大學計算機系,碩士,具有中國投資銀行、國家開發銀行、中信實業銀行等多家銀行從業經歷,多年參與銀行信息化建設和網銀平台開發工作,積累了深厚的全棧技術和豐富的實戰開發經驗,自2006年以來10多年間帶領所組建的開發團隊,從事網絡管理軟件、企業ERP系統和電商平台的開發與建設,對開發模式、開發團隊組織管理和系統架構設計有著深入的理解和豐富的實戰經驗。在帶領技術團隊的過程中積累了豐富的專業技術與培訓經驗。




相關書籍

Learning AWS : Design, build, and deploy responsive applications using AWS Cloud components, 2/e

作者 Aurobindo Sarkar Amit Shah

2021-12-01

Agile Project Management with Azure Devops: Concepts, Templates, and Metrics

作者 Rossberg Joachim

2021-12-01

Getting Started with Containers in Azure: Deploy, Manage, and Secure Containerized Applications

作者 Ifrah Shimon

2021-12-01