Spring Cloud作為微服務開發(fā)的優(yōu)秀代表,它的全家桶中的各組件解決了軟件架構中的一些關鍵問題,Spring框架在企業(yè)開發(fā)中的廣泛應用,使得開發(fā)工程師和架構師紛紛轉向Spring Cloud微服務架構開發(fā),Spring Cloud正被越來越多的企業(yè)用于生產環(huán)境中。
《Spring Boot+Spring Cloud微服務開發(fā)》分為15章。第1~2章主要講解Spring Boot基礎開發(fā)技術,對微服務和Spring Cloud的概念、優(yōu)劣勢、功能模塊等做整體性的介紹,并演示基于IDEA開發(fā)環(huán)境如何從零開始進行Spring Cloud微服務的應用開發(fā)。第3~14章主要講解Spring Cloud在分布式應用的核心場景中涉及的解決方案,即Spring Cloud框架的常用組件,包括服務調用、治理、客戶端負載均衡、調用鏈追蹤、分布式配置、斷路器及路由和網(wǎng)關等實現(xiàn)框架,是微服務開發(fā)實踐的核心內容。第15章是微服務項目綜合實戰(zhàn),將Spring Cloud全家桶中的常用組件及Spring Boot開發(fā)中的重要技術點貫穿起來,形成一個完整的綜合案例,闡述了各章節(jié)介紹的知識模塊在實際項目中的應用和開發(fā)技巧。
《Spring Boot+Spring Cloud微服務開發(fā)》適合需要快速學習Spring Boot+Spring Cloud的Java微服務開發(fā)工程師、Spring Cloud開發(fā)人員、微服務架構師,也適合作為高等院校和培訓機構計算機及相關專業(yè)的師生參考。
前 言
隨著互聯(lián)網(wǎng)時代的發(fā)展,軟件項目規(guī)模、數(shù)據(jù)量在不斷增長,軟件產品的復雜程度也在不斷提高,F(xiàn)代企業(yè)開發(fā)需要支持高并發(fā)和大數(shù)據(jù)的軟件開發(fā)架構,且需要快速發(fā)布,這使得微服務架構廣泛應用在企業(yè)生產中。微服務架構有兩種比較典型的產品,阿里的開源產品Dubbo和VMware 的Spring Cloud。相比于Dubbo,Spring Cloud提供了一整套微服務解決方案,能夠基于Spring Boot實現(xiàn)快速集成,且開發(fā)效率很高。目前Dubbo已經停止維護了,而Spring Cloud有龐大的社區(qū)支持,發(fā)布新版本的頻率也很高。因此,Spring Boot和Spring Cloud框架技術已經成為企業(yè)產品及項目開發(fā)中最流行的技術之一。
本書是一本學習微服務開發(fā)的入門書,內容安排由淺入深,知識點和案例相結合,符合讀者的學習曲線。本書對Spring Cloud全家桶的組件分不同的章節(jié)進行全面細致的講解,章節(jié)對應的Spring Cloud組件之間也是前后銜接、遞進關系,并非大量技術的堆疊。實戰(zhàn)內容緊密結合開發(fā)中的實際應用,融入豐富的案例對技術點進行講解,步驟清晰、簡潔、易懂,特別適合讀者從零開始搭建項目框架,快速上手微服務開發(fā)。本書配套有各章的案例源碼以及綜合項目代碼。書中每個案例都有清晰的步驟標注和豐富的圖片示意,便于讀者快速將學到的微服務開發(fā)技術應用到實際項目中。
源代碼下載
本書配套的源代碼,請用微信掃描右邊清華網(wǎng)盤二維碼獲取。如果有疑問,請聯(lián)系booksaga@163.com,郵件主題為“Spring Boot+Spring Cloud微服務開發(fā)”。
本書適合的讀者
本書適合需要快速學習微服務開發(fā)的Java開發(fā)工程師、Spring Cloud用戶和愛好者、微服務架構師,也適合高等院校和培訓機構計算機及相關專業(yè)的師生參考。
本書作者
本書由遲殿委創(chuàng)作,作者在Spring Cloud微服務領域有豐富的工程實踐經驗,且具有JavaEE方向的培訓教學經驗,能夠把握微服務開發(fā)中的重點內容和典型應用場景,希望本書能使讀者順利掌握微服務開發(fā)技術。
作 者
2020年10月
目 錄
第1章 Spring Boot基礎 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)境準備 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默認的錯誤處理機制 30
1.4.2 定制錯誤響應 33
1.5 Spring Boot搭建微服務實戰(zhàn) 35
1.5.1 Server端程序開發(fā) 35
1.5.2 客戶端程序開發(fā) 42
第2章 Spring Cloud概述 46
2.1 微服務簡介 46
2.2 系統(tǒng)架構的演進 47
2.3 Spring Cloud簡介 49
2.4 Spring Cloud與Spring Boot的關系 53
2.5 Spring Cloud的優(yōu)點 53
第3章 微服務注冊與調用 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 微服務開發(fā)和注冊 62
3.6 Eureka Server安全 66
第4章 基于Ribbon的客戶端負載均衡 71
4.1 RestTemplate應用 71
4.1.1 Rest和RestTemplate 71
4.1.2 Spring Cloud中使用RestTemplate 73
4.2 Ribbon實現(xiàn)負載均衡 74
第5章 Ribbon應用深入 79
5.1 通過編碼方式自定義Ribbon Client 80
5.2 通過配置文件自定義Ribbon Client 81
5.3 內置的負載均衡策略 84
5.4 脫離Eureka使用Ribbon 87
第6章 基于Feign的服務間通信 90
6.1 Feign快速入門 90
6.2 自定義Feign配置 96
6.3 Feign接口日志配置 99
第7章 微服務集群的高可靠 100
7.1 Eureka Server實現(xiàn)高可靠 100
7.2 Eureka的一些配置及解釋 107
第8章 Spring Cloud保護之斷路器及應用 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微服務 125
第10章 基于Zuul的路由和過濾 128
10.1 Zuul反向代理 128
10.2 Zuul路由快速示例 131
10.3 使用serviceId配置路由 133
10.4 使用URL方式配置路由 134
10.5 使用正則表達式方式配置路由 135
10.6 路由配置路徑前綴 137
10.7 Zuul其他屬性設置 139
10.8 查看所有的映射 139
10.9 Zuul文件上傳 140
10.10 Zuul回退功能 144
10.11 Zuul過濾器 146
第11章 微服務網(wǎng)關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 配置服務中心服務器 157
12.3 客戶端訪問配置中心 163
第13章 分布式配置管理應用深入 167
13.1 基礎架構和工作流程 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 服務追蹤實現(xiàn) 188
第15章 Spring Cloud綜合實戰(zhàn) 193
15.1 項目總體功能描述 193
15.2 商品微服務模塊開發(fā) 194
15.3 訂單微服務模塊開發(fā) 203
15.4 微服務間通信開發(fā) 216
15.5 商品、訂單微服務的多模塊改造 225
15.6 基于Git倉庫的分布式配置實現(xiàn) 236
15.7 訂單流程引入異步消息隊列 243
15.8 項目引入服務網(wǎng)關實現(xiàn)限流、權限驗證 256