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