Spring Cloud作為微服務(wù)開發(fā)的優(yōu)秀代表,它的全家桶中的各組件解決了軟件架構(gòu)中的一些關(guān)鍵問題,Spring框架在企業(yè)開發(fā)中的廣泛應(yīng)用,使得開發(fā)工程師和架構(gòu)師紛紛轉(zhuǎn)向Spring Cloud微服務(wù)架構(gòu)開發(fā),Spring Cloud正被越來越多的企業(yè)用于生產(chǎn)環(huán)境中。
《Spring Boot+Spring Cloud微服務(wù)開發(fā)》分為15章。第1~2章主要講解Spring Boot基礎(chǔ)開發(fā)技術(shù),對微服務(wù)和Spring Cloud的概念、優(yōu)劣勢、功能模塊等做整體性的介紹,并演示基于IDEA開發(fā)環(huán)境如何從零開始進(jìn)行Spring Cloud微服務(wù)的應(yīng)用開發(fā)。第3~14章主要講解Spring Cloud在分布式應(yīng)用的核心場景中涉及的解決方案,即Spring Cloud框架的常用組件,包括服務(wù)調(diào)用、治理、客戶端負(fù)載均衡、調(diào)用鏈追蹤、分布式配置、斷路器及路由和網(wǎng)關(guān)等實現(xiàn)框架,是微服務(wù)開發(fā)實踐的核心內(nèi)容。第15章是微服務(wù)項目綜合實戰(zhàn),將Spring Cloud全家桶中的常用組件及Spring Boot開發(fā)中的重要技術(shù)點貫穿起來,形成一個完整的綜合案例,闡述了各章節(jié)介紹的知識模塊在實際項目中的應(yīng)用和開發(fā)技巧。
《Spring Boot+Spring Cloud微服務(wù)開發(fā)》適合需要快速學(xué)習(xí)Spring Boot+Spring Cloud的Java微服務(wù)開發(fā)工程師、Spring Cloud開發(fā)人員、微服務(wù)架構(gòu)師,也適合作為高等院校和培訓(xùn)機構(gòu)計算機及相關(guān)專業(yè)的師生參考。
前 言
隨著互聯(lián)網(wǎng)時代的發(fā)展,軟件項目規(guī)模、數(shù)據(jù)量在不斷增長,軟件產(chǎn)品的復(fù)雜程度也在不斷提高。現(xiàn)代企業(yè)開發(fā)需要支持高并發(fā)和大數(shù)據(jù)的軟件開發(fā)架構(gòu),且需要快速發(fā)布,這使得微服務(wù)架構(gòu)廣泛應(yīng)用在企業(yè)生產(chǎn)中。微服務(wù)架構(gòu)有兩種比較典型的產(chǎn)品,阿里的開源產(chǎn)品Dubbo和VMware 的Spring Cloud。相比于Dubbo,Spring Cloud提供了一整套微服務(wù)解決方案,能夠基于Spring Boot實現(xiàn)快速集成,且開發(fā)效率很高。目前Dubbo已經(jīng)停止維護(hù)了,而Spring Cloud有龐大的社區(qū)支持,發(fā)布新版本的頻率也很高。因此,Spring Boot和Spring Cloud框架技術(shù)已經(jīng)成為企業(yè)產(chǎn)品及項目開發(fā)中最流行的技術(shù)之一。
本書是一本學(xué)習(xí)微服務(wù)開發(fā)的入門書,內(nèi)容安排由淺入深,知識點和案例相結(jié)合,符合讀者的學(xué)習(xí)曲線。本書對Spring Cloud全家桶的組件分不同的章節(jié)進(jìn)行全面細(xì)致的講解,章節(jié)對應(yīng)的Spring Cloud組件之間也是前后銜接、遞進(jìn)關(guān)系,并非大量技術(shù)的堆疊。實戰(zhàn)內(nèi)容緊密結(jié)合開發(fā)中的實際應(yīng)用,融入豐富的案例對技術(shù)點進(jìn)行講解,步驟清晰、簡潔、易懂,特別適合讀者從零開始搭建項目框架,快速上手微服務(wù)開發(fā)。本書配套有各章的案例源碼以及綜合項目代碼。書中每個案例都有清晰的步驟標(biāo)注和豐富的圖片示意,便于讀者快速將學(xué)到的微服務(wù)開發(fā)技術(shù)應(yīng)用到實際項目中。
源代碼下載
本書配套的源代碼,請用微信掃描右邊清華網(wǎng)盤二維碼獲取。如果有疑問,請聯(lián)系booksaga@163.com,郵件主題為“Spring Boot+Spring Cloud微服務(wù)開發(fā)”。
本書適合的讀者
本書適合需要快速學(xué)習(xí)微服務(wù)開發(fā)的Java開發(fā)工程師、Spring Cloud用戶和愛好者、微服務(wù)架構(gòu)師,也適合高等院校和培訓(xùn)機構(gòu)計算機及相關(guān)專業(yè)的師生參考。
本書作者
本書由遲殿委創(chuàng)作,作者在Spring Cloud微服務(wù)領(lǐng)域有豐富的工程實踐經(jīng)驗,且具有JavaEE方向的培訓(xùn)教學(xué)經(jīng)驗,能夠把握微服務(wù)開發(fā)中的重點內(nèi)容和典型應(yīng)用場景,希望本書能使讀者順利掌握微服務(wù)開發(fā)技術(shù)。
作 者
2020年10月
目 錄
第1章 Spring Boot基礎(chǔ) 1
1.1 Spring Boot初體驗 1
1.1.1 Spring Boot 簡介 1
1.1.2 Spring Boot的特性和優(yōu)點 2
1.1.3 Spring Boot開發(fā)環(huán)境準(zhǔn)備 3
1.1.4 Spring Boot入門程序 4
1.1.5 入門程序分析 6
1.2 Spring Boot配置文件 8
1.2.1 配置文件命名和格式 8
1.2.2 YAML語法 9
1.2.3 在配置文件中注入值 10
1.2.4 Profile使用 15
1.2.5 配置文件加載位置和順序 16
1.2.6 自動配置原理 17
1.3 Spring Boot日志 19
1.3.1 日志框架介紹 19
1.3.2 SLF4J的使用 21
1.3.3 Spring Boot中日志的使用 22
1.3.4 切換日志框架 25
1.4 Spring Boot錯誤處理機制 30
1.4.1 Spring Boot默認(rèn)的錯誤處理機制 30
1.4.2 定制錯誤響應(yīng) 33
1.5 Spring Boot搭建微服務(wù)實戰(zhàn) 35
1.5.1 Server端程序開發(fā) 35
1.5.2 客戶端程序開發(fā) 42
第2章 Spring Cloud概述 46
2.1 微服務(wù)簡介 46
2.2 系統(tǒng)架構(gòu)的演進(jìn) 47
2.3 Spring Cloud簡介 49
2.4 Spring Cloud與Spring Boot的關(guān)系 53
2.5 Spring Cloud的優(yōu)點 53
第3章 微服務(wù)注冊與調(diào)用 55
3.1 Netflix與Spring Cloud 55
3.2 Eureka簡介 56
3.3 Eureka Server單點模式 58
3.4 創(chuàng)建Eureka Server 58
3.5 微服務(wù)開發(fā)和注冊 62
3.6 Eureka Server安全 66
第4章 基于Ribbon的客戶端負(fù)載均衡 71
4.1 RestTemplate應(yīng)用 71
4.1.1 Rest和RestTemplate 71
4.1.2 Spring Cloud中使用RestTemplate 73
4.2 Ribbon實現(xiàn)負(fù)載均衡 74
第5章 Ribbon應(yīng)用深入 79
5.1 通過編碼方式自定義Ribbon Client 80
5.2 通過配置文件自定義Ribbon Client 81
5.3 內(nèi)置的負(fù)載均衡策略 84
5.4 脫離Eureka使用Ribbon 87
第6章 基于Feign的服務(wù)間通信 90
6.1 Feign快速入門 90
6.2 自定義Feign配置 96
6.3 Feign接口日志配置 99
第7章 微服務(wù)集群的高可靠 100
7.1 Eureka Server實現(xiàn)高可靠 100
7.2 Eureka的一些配置及解釋 107
第8章 Spring Cloud保護(hù)之?dāng)嗦菲骷皯?yīng)用 109
8.1 Hystrix Fallback 109
8.2 Hystrix的超時時間配置 113
8.3 Hystrix隔離策略 114
8.4 Hystrix健康檢查 116
8.5 hystrix.stream 117
8.6 在Feign中使用Hystrix Fallback 118
8.7 Hystrix的Dashboard 121
第9章 斷路器聚合監(jiān)控之Turbine 124
9.1 Hystrix Turbine簡介 124
9.2 開發(fā)Turbine微服務(wù) 125
第10章 基于Zuul的路由和過濾 128
10.1 Zuul反向代理 128
10.2 Zuul路由快速示例 131
10.3 使用serviceId配置路由 133
10.4 使用URL方式配置路由 134
10.5 使用正則表達(dá)式方式配置路由 135
10.6 路由配置路徑前綴 137
10.7 Zuul其他屬性設(shè)置 139
10.8 查看所有的映射 139
10.9 Zuul文件上傳 140
10.10 Zuul回退功能 144
10.11 Zuul過濾器 146
第11章 微服務(wù)網(wǎng)關(guān)Spring Cloud Gateway 149
11.1 Gateway路由配置方式實現(xiàn) 150
11.2 Gateway路由編程方式實現(xiàn) 154
第12章 分布式配置管理快速入門 156
12.1 Spring Cloud Config Server介紹 156
12.2 配置服務(wù)中心服務(wù)器 157
12.3 客戶端訪問配置中心 163
第13章 分布式配置管理應(yīng)用深入 167
13.1 基礎(chǔ)架構(gòu)和工作流程 167
13.2 配置倉庫 168
13.2.1 Git倉庫配置 168
13.2.2 SVN倉庫配置 172
13.3 基于Git倉庫的分布式配置實戰(zhàn) 172
13.3.1 創(chuàng)建Config Server項目 172
13.3.2 創(chuàng)建Git配置項目 175
13.3.3 添加配置文件 178
13.3.4 Config Server引用Git 180
13.3.5 配置客戶端 182
第14章 Spring Cloud鏈路追蹤 186
14.1 Spring Cloud Sleuth組件概述 186
14.2 服務(wù)追蹤實現(xiàn) 188
第15章 Spring Cloud綜合實戰(zhàn) 193
15.1 項目總體功能描述 193
15.2 商品微服務(wù)模塊開發(fā) 194
15.3 訂單微服務(wù)模塊開發(fā) 203
15.4 微服務(wù)間通信開發(fā) 216
15.5 商品、訂單微服務(wù)的多模塊改造 225
15.6 基于Git倉庫的分布式配置實現(xiàn) 236
15.7 訂單流程引入異步消息隊列 243
15.8 項目引入服務(wù)網(wǎng)關(guān)實現(xiàn)限流、權(quán)限驗證 256