Spring Boot+Spring Cloud+Docker微服務(wù)架構(gòu)開發(fā)實(shí)戰(zhàn)
定 價(jià):69.8 元
叢書名:Web開發(fā)人才培養(yǎng)系列叢書
- 作者:李曉黎
- 出版時(shí)間:2021/12/1
- ISBN:9787115576590
- 出 版 社:人民郵電出版社
- 中圖法分類:TP368.5
- 頁碼:
- 紙張:膠版紙
- 版次:
- 開本:128開
Spring Boot + Spring Cloud + Docker是目前國內(nèi)相關(guān)領(lǐng)域工程人員搭建微服務(wù)架構(gòu)的主要解決方案之一,它基于的是流行的Java開發(fā)框架——Spring,現(xiàn)已成為微服務(wù)架構(gòu)的技術(shù)方案。
本書通過大量案例介紹使用Spring Boot + Spring Cloud + Docker開發(fā)微服務(wù)架構(gòu)(應(yīng)用程序)的方法,包括開發(fā)服務(wù)注冊中心程序、服務(wù)提供者程序、服務(wù)消費(fèi)者程序、認(rèn)證服務(wù)、API網(wǎng)關(guān)等組件,進(jìn)而搭建完整的微服務(wù)架構(gòu)。為了便于初學(xué)者學(xué)習(xí)和理解相關(guān)內(nèi)容,編者大量使用流程圖和架構(gòu)圖對問題進(jìn)行描述和講解;同時(shí),精選“秒殺搶購”案例,使讀者直觀地了解微服務(wù)架構(gòu)在實(shí)際應(yīng)用程序開發(fā)工作中的應(yīng)用,提升讀者的實(shí)戰(zhàn)技能。
本書可作為高等院校相關(guān)課程的教材,也可作為廣大互聯(lián)網(wǎng)應(yīng)用程序開發(fā)人員的參考書。
1.化繁為簡,精選實(shí)用的核心技術(shù)!
作為分布式系統(tǒng),Spring Boot+Spring Cloud微服務(wù)架構(gòu)包含很多組件,所涉及的技術(shù)對于初學(xué)者而言可以說是浩如煙海,因此,在有限的篇幅中不可能涵蓋全部。本書在內(nèi)容的選擇、深度的把握上力求做到深入淺出、循序漸進(jìn),方便初學(xué)者閱讀和學(xué)習(xí)。
2.依托圖表和案例,幫助讀者理解抽象的架構(gòu)設(shè)計(jì)問題!
作為開發(fā)架構(gòu)類的入門級教材,本書通過各種流程圖、架構(gòu)圖來描述微服務(wù)架構(gòu)的工作原理。本書通過介紹大量案例,為讀者理解抽象概念提供了捷徑。特別是第10章介紹的“秒殺搶購”案例,可以幫助讀者系統(tǒng)地理解微服務(wù)架構(gòu)的作用。
3.提供配套教輔資源!
編者為使用本書的教師制作了配套的電子教案,并提供了各章習(xí)題的參考答案和11個(gè)實(shí)驗(yàn)的電子文檔,以及“秒殺搶購”案例和大作業(yè)“迷你購物電商網(wǎng)站應(yīng)用實(shí)例”的數(shù)據(jù)庫腳本和源程序,上述資源可以通過人郵教育社區(qū)(www.ryjiaoyu.com)進(jìn)行下載。
李曉黎:
1998年畢業(yè)于吉林大學(xué)計(jì)算機(jī)系,碩士,具有中國投資銀行、國家開發(fā)銀行、中信實(shí)業(yè)銀行等多家銀行從業(yè)經(jīng)歷,多年參與銀行信息化建設(shè)和網(wǎng)銀平臺開發(fā)工作,積累了深厚的全棧技術(shù)和豐富的實(shí)戰(zhàn)開發(fā)經(jīng)驗(yàn),自2006年以來10多年間帶領(lǐng)所組建的開發(fā)團(tuán)隊(duì),從事網(wǎng)絡(luò)管理軟件、企業(yè)ERP系統(tǒng)和電商平臺的開發(fā)與建設(shè),對開發(fā)模式、開發(fā)團(tuán)隊(duì)組織管理和系統(tǒng)架構(gòu)設(shè)計(jì)有著深入的理解和豐富的實(shí)戰(zhàn)經(jīng)驗(yàn)。在帶領(lǐng)技術(shù)團(tuán)隊(duì)的過程中積累了豐富的專業(yè)技術(shù)與培訓(xùn)經(jīng)驗(yàn)。
第 1章 微服務(wù)架構(gòu)概述
1.1 軟件系統(tǒng)架構(gòu) 01
1.1.1 計(jì)算機(jī)硬件發(fā)展對軟件系統(tǒng)架構(gòu)的影響 01
1.1.2 軟件系統(tǒng)架構(gòu)的演進(jìn) 03
1.2 主流微服務(wù)架構(gòu)解決方案 08
1.3 開發(fā)環(huán)境和測試環(huán)境 10
1.3.1 開發(fā)環(huán)境 11
1.3.2 測試環(huán)境 14
本章小結(jié) 25
習(xí)題1
第 2章 Spring Boot和Spring Cloud編程基礎(chǔ)
2.1 Spring框架 27
2.1.1 Spring框架的體系結(jié)構(gòu) 27
2.1.2 一個(gè)簡單的Maven項(xiàng)目案例 29
2.1.3 IoC容器 32
2.1.4 注解 36
2.2 Spring Boot編程基礎(chǔ) 41
2.2.1 Spring與Spring Boot的關(guān)系 41
2.2.2 開發(fā)一個(gè)簡單的Spring Boot應(yīng)用程序 41
2.2.3 基于Spring Boot開發(fā)MVC Web應(yīng)用程序 45
2.2.4 利用Thymeleaf模板引擎實(shí)現(xiàn)動態(tài)頁面 50
2.2.5 記錄日志 54
2.2.6 通過MyBatis訪問MySQL數(shù)據(jù)庫 57
2.2.7 以Jar包形式運(yùn)行Spring Boot應(yīng)用程序 64
2.3 Spring Cloud概述 65
2.3.1 Spring Cloud家族的成員 65
2.3.2 Spring Cloud與Spring Boot的 關(guān)系 67
2.3.3 Spring Boot與Spring Cloud的 版本 67
本章小結(jié) 69
習(xí)題2
第3章 服務(wù)注冊中心程序開發(fā)
3.1 Spring Cloud Eureka的服務(wù)注冊機(jī)制 71
3.2 開發(fā)基于Eureka的服務(wù)注冊中心程序 72
3.2.1 本章案例項(xiàng)目 72
3.2.2 啟動類 73
3.2.3 Eureka服務(wù)注冊中心的主頁 73
3.2.4 配置文件 75
3.2.5 Eureka的高可用性 78
3.2.6 部署Eureka服務(wù)注冊中心 78
3.2.7 以服務(wù)形式運(yùn)行Eureka Server 82
本章小結(jié) 84
習(xí)題3
第4章 服務(wù)提供者程序開發(fā)
4.1 開發(fā)基于RESTful架構(gòu)的Web服務(wù) 86
4.1.1 RESTful架構(gòu)概述 86
4.1.2 開發(fā)RESTful服務(wù) 87
4.1.3 實(shí)現(xiàn)POST方法 88
4.1.4 實(shí)現(xiàn)PUT方法 88
4.1.5 實(shí)現(xiàn)DELETE方法 89
4.1.6 以JSON格式傳遞數(shù)據(jù) 89
4.2 開發(fā)Spring Cloud資源服務(wù) 91
4.2.1 注冊到Eureka Server 91
4.2.2 案例:開發(fā)用戶系統(tǒng)服務(wù) 91
4.2.3 使用Postman測試服務(wù)提供者程序 99
本章小結(jié) 104
習(xí)題4
第5章 服務(wù)消費(fèi)者程序開發(fā)
5.1 準(zhǔn)備服務(wù)提供者實(shí)例環(huán)境 105
5.1.1 對User服務(wù)進(jìn)行適當(dāng)?shù)母脑臁?05
5.1.2 為User服務(wù)部署多個(gè)實(shí)例 106
5.2 Spring Cloud Ribbon 107
5.2.1 負(fù)載均衡 107
5.2.2 Spring Cloud Ribbon編程基礎(chǔ) 109
5.3 Spring Cloud Feign 113
5.3.1 添加Feign依賴 113
5.3.2 項(xiàng)目的啟動類 114
5.3.3 @FeignClient注解 114
本章小結(jié) 116
習(xí)題5
第6章 認(rèn)證服務(wù)開發(fā)
6.1 微服務(wù)架構(gòu)的安全認(rèn)證 118
6.1.1 認(rèn)證服務(wù)器的作用 118
6.1.2 OAuth 2.0概述 119
6.2 開發(fā)基于OAuth 2.0的認(rèn)證服務(wù) 122
6.2.1 與安全認(rèn)證有關(guān)的數(shù)據(jù)庫表 122
6.2.2 認(rèn)證服務(wù)項(xiàng)目 127
6.2.3 啟動類 129
6.2.4 MyBatis配置 129
6.2.5 用戶管理的實(shí)現(xiàn) 130
6.2.6 安全配置類 132
6.2.7 部署認(rèn)證服務(wù) 135
6.2.8 使用Postman獲取access token 136
6.3 服務(wù)提供者程序的安全機(jī)制 137
6.3.1 服務(wù)提供者程序安全機(jī)制的工作原理 137
6.3.2 服務(wù)提供者程序的啟動類 138
6.3.3 資源服務(wù)配置類 138
6.4 在應(yīng)用程序中獲取access token 140
6.4.1 在程序中以POST方法調(diào)用接口 140
6.4.2 在POST請求包頭中指定Basic Auth信息 141
6.4.3 在POST請求包中指定grant_type和scope參數(shù) 141
6.4.4 從認(rèn)證服務(wù)獲取access token的案例 142
本章小結(jié) 144
習(xí)題6
第7章 微服務(wù)的容錯(cuò)保護(hù)機(jī)制
7.1 Spring Cloud Hystrix概述 146
7.1.1 熔斷器的工作原理 146
7.1.2 Spring Cloud Hystrix的工作原理 147
7.2 準(zhǔn)備服務(wù)提供者實(shí)例環(huán)境 148
7.2.1 對User服務(wù)進(jìn)行適當(dāng)?shù)母脑臁?48
7.2.2 為User服務(wù)部署多個(gè)實(shí)例 149
7.3 Spring Cloud Hystrix編程 149
7.3.1 在項(xiàng)目中啟用Hystrix組件 149
7.3.2 在Ribbon中應(yīng)用Hystrix 150
7.3.3 在Feign中應(yīng)用Hystrix 153
本章小結(jié) 155
習(xí)題7
第8章 API網(wǎng)關(guān)
8.1 Spring Cloud Zuul概述 157
8.2 Spring Cloud Zuul編程 158
8.2.1 在項(xiàng)目中啟用Zuul組件 158
8.2.2 在application.yml中配置Zuul 158
8.2.3 Zuul過濾器 159
8.2.4 通過Zuul服務(wù)器調(diào)用服務(wù) 162
8.2.5 設(shè)置Zuul網(wǎng)關(guān)的白名單 164
8.2.6 記錄訪問日志 168
8.3 應(yīng)用程序通過API網(wǎng)關(guān)調(diào)用服務(wù)接口 171
8.3.1 在應(yīng)用程序中以GET方式調(diào)用接口 171
8.3.2 在應(yīng)用程序中以POST方式調(diào)用接口 174
本章小結(jié) 179
習(xí)題8
第9章 微服務(wù)配置中心
9.1 Spring Cloud Config概述 180
9.2 Git基礎(chǔ) 181
9.2.1 Git的工作流程 181
9.2.2 注冊GitHub賬號 182
9.2.3 創(chuàng)建GitHub倉庫 182
9.2.4 在STS中上傳代碼至GitHub倉庫 182
9.3 開發(fā)配置中心的服務(wù)器 185
9.3.1 在項(xiàng)目中啟用Spring CloudConfig Server組件 185
9.3.2 共享Config Server的本地配置文件 186
9.3.3 使用Git管理配置文件 188
9.3.4 部署ConfigServerGit項(xiàng)目 190
9.4 開發(fā)配置中心的客戶端 191
9.4.1 pom依賴和啟動類 191
9.4.2 配置中心客戶端程序的配置文件 192
9.4.3 配置中心的客戶端程序案例 193
本章小結(jié) 195
習(xí)題9
第 10章 微服務(wù)架構(gòu)的消息機(jī)制
10.1 應(yīng)用程序的消息機(jī)制 196
10.1.1 單機(jī)應(yīng)用程序的消息機(jī)制 196
10.1.2 分布式應(yīng)用程序的消息 機(jī)制 197
10.1.3 基于Redis實(shí)現(xiàn)分布式消息 隊(duì)列 199
10.1.4 Spring Boot集成RabbitMQ 消息隊(duì)列 204
10.2 Spring Cloud Bus 213
10.2.1 Spring Cloud Bus的工作 原理 213
10.2.2 開發(fā)Spring Cloud Bus應(yīng)用 程序 215
10.2.3 在配置中心中實(shí)現(xiàn)自動刷新 配置功能 215
10.3 通過Spring Cloud Stream收發(fā)消息 219
10.3.1 Spring Cloud Stream應(yīng)用 程序模型 219
10.3.2 利用Spring Cloud Stream集成 RabbitMQ實(shí)現(xiàn)消息處理 220
10.4 消息隊(duì)列在秒殺搶購場景中的應(yīng)用 224
10.4.1 秒殺搶購應(yīng)用場景解析 225
10.4.2 傳統(tǒng)架構(gòu)的高并發(fā)瓶頸 225
10.4.3 秒殺搶購解決方案 226
10.4.4 限流算法及其實(shí)現(xiàn) 228
10.4.5 秒殺搶購案例 230
本章小結(jié) 243
習(xí)題10
第 11章 利用Docker容器化部署微服務(wù)應(yīng)用
11.1 容器化概述 244
11.1.1 Docker概述 244
11.1.2 Docker的基本概念 245
11.1.3 Docker與虛擬機(jī)的對比 246
11.2 Docker基礎(chǔ) 247
11.2.1 在CentOS中安裝Docker 247
11.2.2 使用Docker容器 249
11.2.3 搭建Docker Registry私服 253
11.2.4 使用Docker部署Spring Boot 應(yīng)用程序 255
11.2.5 以Docker鏡像的形式運(yùn)行 Eureka服務(wù)應(yīng)用程序 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 搭建 微服務(wù)項(xiàng)目 271
本章小結(jié) 282
習(xí)題11