深入理解Spring Cloud與微服務(wù)構(gòu)建 第2版
定 價(jià):79 元
- 作者:方志朋
- 出版時(shí)間:2019/9/1
- ISBN:9787115514882
- 出 版 社:人民郵電出版社
- 中圖法分類:P368.5
- 頁(yè)碼:296
- 紙張:
- 版次:02
- 開(kāi)本:16開(kāi)
《深入理解Spring Cloud與微服務(wù)構(gòu)建 第2版》共分為18章,全面涵蓋了通過(guò)Spring Cloud構(gòu)建微服務(wù)的相關(guān)知識(shí)點(diǎn)。第1、2章詳細(xì)介紹了微服務(wù)架構(gòu)和Spring Cloud。第3、4章講解了通過(guò)Spring Cloud構(gòu)建微服務(wù)的準(zhǔn)備工作。第5~14章以案例為切入點(diǎn),講解了通過(guò)Spring Cloud構(gòu)建微服務(wù)的基礎(chǔ)組件,包括Eureka、Ribbon、Feign、Hystrix、Zuul、Gateway、Consul、Config、Sleuth、Admint等組件。第15~17章講述了使用Spring Cloud OAuth2來(lái)保護(hù)微服務(wù)系統(tǒng)的相關(guān)知識(shí)。第18章用一個(gè)綜合案例全面講解了如何使用Spring Cloud構(gòu)建微服務(wù),可用于實(shí)際開(kāi)發(fā)中。
作為Java語(yǔ)言的落地微服務(wù)框架,Spring Cloud已經(jīng)在各大企業(yè)普遍應(yīng)用,各大云廠商也支持Spring Cloud微服務(wù)框架的云產(chǎn)品,因此熟練掌握Spring Cloud是面試者的加分項(xiàng),《深入理解Spring Cloud與微服務(wù)構(gòu)建 第2版》的十八章內(nèi)容全面涵蓋了通過(guò)Spring Cloud構(gòu)建微服務(wù)的相關(guān)知識(shí)點(diǎn),并且在第一版的基礎(chǔ)上針對(duì)Spring Cloud的新功能做了全新改版。
1.基于Greenwich版本,全面講解Spring Cloud原生組件。
2.深入原理,輔以圖解,生動(dòng)串聯(lián)整個(gè)Spring Cloud生態(tài)。
3.總結(jié)提升,利用綜合案例展現(xiàn)構(gòu)建微服務(wù)系統(tǒng)的全過(guò)程。
4.附帶全書(shū)源碼供,讀者可到異步社區(qū)本書(shū)頁(yè)面下載,方便學(xué)習(xí)和使用。
方志朋,畢業(yè)于武漢理工大學(xué),就職于某互聯(lián)網(wǎng)金融公司。Spring Cloud中國(guó)社區(qū)聯(lián)合發(fā)起人、CSDN博客專家,專注于分布式系統(tǒng)和中間件等領(lǐng)域的研究和開(kāi)發(fā),樂(lè)于分享,愛(ài)好開(kāi)源,對(duì)技術(shù)有著強(qiáng)烈的追求,活躍于各大技術(shù)社區(qū)。
第 1章 微服務(wù)簡(jiǎn)介 1
1.1 單體架構(gòu)及其存在的不足 1
1.1.1 單體架構(gòu)簡(jiǎn)介 1
1.1.2 單體架構(gòu)存在的不足 2
1.1.3 單體架構(gòu)使用服務(wù)器集群及存在的不足 2
1.2 微服務(wù) 3
1.2.1 什么是微服務(wù) 4
1.2.2 微服務(wù)的優(yōu)勢(shì) 8
1.3 微服務(wù)的不足 9
1.3.1 微服務(wù)的復(fù)雜度 9
1.3.2 分布式事務(wù) 9
1.3.3 服務(wù)的劃分 11
1.3.4 服務(wù)的部署 11
1.4 微服務(wù)和SOA的關(guān)系 12
1.5 微服務(wù)的設(shè)計(jì)原則 12
第 2章 Spring Cloud簡(jiǎn)介 14
2.1 微服務(wù)應(yīng)該具備的功能 14
2.1.1 服務(wù)的注冊(cè)與發(fā)現(xiàn) 15
2.1.2 服務(wù)的負(fù)載均衡 15
2.1.3 服務(wù)的容錯(cuò) 16
2.1.4 服務(wù)網(wǎng)關(guān) 18
2.1.5 服務(wù)配置的統(tǒng)一管理 19
2.1.6 服務(wù)鏈路追蹤 20
2.2 Spring Cloud 20
2.2.1 簡(jiǎn)介 20
2.2.2 常用組件 21
2.2.3 項(xiàng)目一覽 22
2.3 Dubbo簡(jiǎn)介 23
2.4 Spring Cloud與Dubbo比較 24
2.5 Kubernetes簡(jiǎn)介 25
2.6 Spring Could與Kubernetes比較 27
2.7 總結(jié) 28
第3章 構(gòu)建微服務(wù)的準(zhǔn)備 29
3.1 JDK的安裝 29
3.1.1 JDK的下載和安裝 29
3.1.2 環(huán)境變量的配置 29
3.2 IDEA的安裝 30
3.2.1 IDEA的下載 30
3.2.2 用IDEA創(chuàng)建一個(gè)Spring Boot工程 31
3.2.3 用IDEA啟動(dòng)多個(gè)Spring Boot工程實(shí)例 33
3.3 構(gòu)建工具M(jìn)aven的使用 34
3.3.1 Maven簡(jiǎn)介 34
3.3.2 Maven的安裝 34
3.3.3 Maven的核心概念 36
3.3.4 編寫(xiě)Pom文件 36
3.3.5 Maven構(gòu)建項(xiàng)目的生命周期 38
3.3.6 常用的Maven命令 39
第4章 開(kāi)發(fā)框架Spring Boot 41
4.1 Spring Boot簡(jiǎn)介 41
4.1.1 Spring Boot的特點(diǎn) 41
4.1.2 Spring Boot的優(yōu)點(diǎn) 42
4.2 用IDEA構(gòu)建Spring Boot工程 42
4.2.1 項(xiàng)目結(jié)構(gòu) 42
4.2.2 在Spring Boot工程中構(gòu)建Web程序 43
4.2.3 Spring Boot的測(cè)試 44
4.3 Spring Boot配置文件詳解 45
4.3.1 自定義屬性 45
4.3.2 將配置文件的屬性賦給實(shí)體類 46
4.3.3 自定義配置文件 47
4.3.4 多個(gè)環(huán)境的配置文件 48
4.4 運(yùn)行狀態(tài)監(jiān)控Actuator 48
4.4.1 查看運(yùn)行程序的健康狀態(tài) 50
4.4.2 查看運(yùn)行程序的Bean 51
4.4.3 使用Actuator關(guān)閉應(yīng)用程序 53
4.4.4 使用shell連接Actuator 54
4.5 Spring Boot整合JPA 55
4.6 Spring Boot整合Redis 58
4.6.1 Redis簡(jiǎn)介 58
4.6.2 Redis的安裝 58
4.6.3 在Spring Boot中使用Redis 58
4.7 Spring Boot整合Swagger2,搭建Restful API在線文檔 60
第5章 服務(wù)注冊(cè)和發(fā)現(xiàn)Eureka 64
5.1 Eureka簡(jiǎn)介 64
5.1.1 什么是Eureka 64
5.1.2 為什么選擇Eureka 64
5.1.3 Eureka的基本架構(gòu) 65
5.2 編寫(xiě)Eureka Server 65
5.3 編寫(xiě)Eureka Client 68
5.4 源碼解析Eureka 71
5.4.1 Eureka的一些概念 71
5.4.2 Eureka的高可用架構(gòu) 72
5.4.3 Register服務(wù)注冊(cè) 72
5.4.4 Renew服務(wù)續(xù)約 76
5.4.5 為什么Eureka Client獲取服務(wù)實(shí)例這么慢 77
5.4.6 Eureka 的自我保護(hù)模式 78
5.5 構(gòu)建高可用的Eureka Server集群 79
5.6 總結(jié) 81
第6章 負(fù)載均衡Ribbon 82
6.1 RestTemplate簡(jiǎn)介 82
6.2 Ribbon簡(jiǎn)介 83
6.3 使用RestTemplate和Ribbon來(lái)消費(fèi)服務(wù) 83
6.4 LoadBalancerClient簡(jiǎn)介 86
6.5 源碼解析Ribbon 88
第7章 聲明式調(diào)用Feign 99
7.1 寫(xiě)一個(gè)Feign客戶端 99
7.2 FeignClient詳解 103
7.3 FeignClient的配置 104
7.4 從源碼的角度講解Feign的工作原理 105
7.5 在Feign中使用HttpClient和OkHttp 108
7.6 Feign是如何實(shí)現(xiàn)負(fù)載均衡的 110
7.7 總結(jié) 112
第8章 熔斷器Hystrix 113
8.1 Hystrix簡(jiǎn)介 113
8.2 Hystrix解決的問(wèn)題 113
8.3 Hystrix的設(shè)計(jì)原則 115
8.4 Hystrix的工作機(jī)制 115
8.5 在RestTemplate和Ribbon上使用熔斷器 116
8.6 在Feign上使用熔斷器 117
8.7 使用Hystrix Dashboard監(jiān)控熔斷器的狀態(tài) 118
8.7.1 在RestTemplate中使用Hystrix Dashboard 118
8.7.2 在Feign中使用Hystrix Dashboard 121
8.8 使用Turbine聚合監(jiān)控 122
第9章 路由網(wǎng)關(guān)Spring Cloud Zuul 124
9.1 為什么需要Zuul 124
9.2 Zuul的工作原理 124
9.3 案例實(shí)戰(zhàn) 126
9.3.1 搭建Zuul服務(wù) 126
9.3.2 在Zuul上配置API接口的版本號(hào) 129
9.3.3 在Zuul上配置熔斷器 130
9.3.4 在Zuul中使用過(guò)濾器 131
9.3.5 Zuul的常見(jiàn)使用方式 133
第 10章 服務(wù)網(wǎng)關(guān) 135
10.1 服務(wù)網(wǎng)關(guān)的實(shí)現(xiàn)原理 135
10.2 斷言工廠 136
10.2.1 After路由斷言工廠 136
10.2.2 Header斷言工廠 138
10.2.3 Cookie路由斷言工廠 139
10.2.4 Host路由斷言工廠 140
10.2.5 Method路由斷言工廠 140
10.2.6 Path 路由斷言工廠 141
10.2.7 Query 路由斷言工廠 141
10.3 過(guò)濾器 142
10.3.1 過(guò)濾器的作用 143
10.3.2 過(guò)濾器的生命周期 144
10.3.3 網(wǎng)關(guān)過(guò)濾器 144
10.3.4 全局過(guò)濾器 151
10.4 限流 153
10.4.1 常見(jiàn)的限流算法 153
10.4.2 服務(wù)網(wǎng)關(guān)的限流 154
10.5 服務(wù)化 156
10.5.1 工程介紹 156
10.5.2 service-gateway工程詳細(xì)介紹 157
10.6 總結(jié) 159
第 11章 服務(wù)注冊(cè)和發(fā)現(xiàn)Consul 160
11.1 什么是Consul 160
11.1.1 基本術(shù)語(yǔ) 160
11.1.2 Consul的特點(diǎn)和功能 161
11.1.3 Consul的原理 161
11.1.4 Consul的基本架構(gòu) 161
11.1.5 Consul服務(wù)注冊(cè)發(fā)現(xiàn)流程 163
11.2 Consul與Eureka比較 163
11.3 下載和安裝Consul 164
11.4 使用Spring Cloud Consul進(jìn)行服務(wù)注冊(cè)和發(fā)現(xiàn) 165
11.4.1 服務(wù)提供者consul-provider 165
11.4.2 服務(wù)消費(fèi)者consul-provider 167
11.5 使用Spring Cloud Consul Config做服務(wù)配置中心 168
11.6 動(dòng)態(tài)刷新配置 170
11.7 總結(jié) 171
第 12章 配置中心Spring Cloud Config 172
12.1 Config Server從本地讀取配置文件 172
12.1.1 構(gòu)建Config Server 172
12.1.2 構(gòu)建Config Client 174
12.2 Config Server從遠(yuǎn)程Git倉(cāng)庫(kù)讀取配置文件 175
12.3 構(gòu)建高可用的Config Server 176
12.3.1 構(gòu)建Eureka Server 177
12.3.2 改造Config Server 178
12.3.3 改造Config Client 178
12.4 使用Spring Cloud Bus刷新配置 180
12.5 將配置存儲(chǔ)在MySQL數(shù)據(jù)庫(kù)中 182
12.5.1 改造config-server工程 182
12.5.2 初始化數(shù)據(jù)庫(kù) 183
第 13章 服務(wù)鏈路追蹤Spring Cloud Sleuth 184
13.1 為什么需要Spring Cloud Sleuth 184
13.2 基本術(shù)語(yǔ) 184
13.3 案例講解 186
13.3.1 啟動(dòng)Zipkin Server 187
13.3.2 構(gòu)建服務(wù)提供者 187
13.3.3 構(gòu)建服務(wù)消費(fèi)者 189
13.3.4 項(xiàng)目演示 191
13.4 在鏈路數(shù)據(jù)中添加自定義數(shù)據(jù) 192
13.5 使用RabbitMQ 傳輸鏈路數(shù)據(jù) 192
13.6 在MySQL數(shù)據(jù)庫(kù)中存儲(chǔ)鏈路數(shù)據(jù) 194
13.7 在ElasticSearch中存儲(chǔ)鏈路數(shù)據(jù) 195
13.8 用Kibana展示鏈路數(shù)據(jù) 196
第 14章 微服務(wù)監(jiān)控Spring Boot Admin 198
14.1 使用Spring Boot Admin監(jiān)控Spring Boot應(yīng)用程序 199
14.1.1 創(chuàng)建Spring Boot Admin Server 199
14.1.2 創(chuàng)建Spring Boot Admin Client 200
14.2 使用Spring Boot Admin監(jiān)控Spring Cloud微服務(wù) 202
14.2.1 構(gòu)建Admin Server 202
14.2.2 構(gòu)建Admin Client 204
14.3 在Spring Boot Admin中添加Security和Mail組件 205
14.3.1 Spring Boot Admin集成Security組件 206
14.3.2 Spring Boot Admin集成Mail組件 208
第 15章 Spring Boot Security詳解 209
15.1 Spring Security簡(jiǎn)介 209
15.1.1 什么是Spring Security 209
15.1.2 為什么選擇Spring Security 209
15.1.3 Spring Security提供的安全模塊 210
15.2 Spring Boot Security與Spring Security的關(guān)系 211
15.3 Spring Boot Security案例詳解 211
15.3.1 構(gòu)建Spring Boot Security工程 211
15.3.2 配置Spring Security 213
15.3.3 編寫(xiě)相關(guān)界面 215
15.3.4 Spring Security方法級(jí)別上的保護(hù) 220
15.3.5 從數(shù)據(jù)庫(kù)中讀取用戶的認(rèn)證信息 223
15.4 總結(jié) 228
第 16章 使用Spring Cloud OAuth2保護(hù)微服務(wù)系統(tǒng) 230
16.1 什么是OAuth2 230
16.2 如何使用Spring OAuth2 231
16.2.1 OAuth2 Provider 231
16.2.2 OAuth2 Client 235
16.3 案例分析 236
16.3.1 編寫(xiě)Eureka Server 237
16.3.2 編寫(xiě)Uaa授權(quán)服務(wù) 237
16.3.3 編寫(xiě)service-hi資源服務(wù) 244
16.4 總結(jié) 250
第 17章 使用Spring Security OAuth2和JWT保護(hù)微服務(wù)系統(tǒng) 251
17.1 JWT簡(jiǎn)介 251
17.1.1 什么是JWT 251
17.1.2 JWT的結(jié)構(gòu) 252
17.1.3 JWT的應(yīng)用場(chǎng)景 253
17.1.4 如何使用JWT 253
17.2 案例分析 253
17.2.1 案例架構(gòu)設(shè)計(jì) 253
17.2.2 編寫(xiě)主Maven工程 254
17.2.3 編寫(xiě)Eureka Server 256
17.2.4 編寫(xiě)Uaa授權(quán)服務(wù) 256
17.2.5 編寫(xiě)user-service資源服務(wù) 262
17.3 總結(jié) 270
第 18章 使用Spring Cloud構(gòu)建微服務(wù)綜合案例 271
18.1 案例介紹 271
18.1.1 工程結(jié)構(gòu) 271
18.1.2 使用的技術(shù)!271
18.1.3 工程架構(gòu) 272
18.1.4 功能展示 274
18.2 案例詳解 277
18.2.1 準(zhǔn)備工作 278
18.2.2 構(gòu)建主Maven工程 278
18.2.3 構(gòu)建eureka-server工程 279
18.2.4 構(gòu)建config-server工程 280
18.2.5 構(gòu)建Zipkin工程 281
18.2.6 構(gòu)建monitoring-service工程 282
18.2.7 構(gòu)建uaa-service工程 284
18.2.8 構(gòu)建gateway-service工程 286
18.2.9 構(gòu)建admin-service工程 287
18.2.10 構(gòu)建user-service工程 287
18.2.11 構(gòu)建blog-service工程 290
18.2.12 構(gòu)建log-service工程 291
18.3 啟動(dòng)源碼工程 294
18.4 項(xiàng)目演示 295
18.5 總結(jié) 296