深入理解SPRING CLOUD與微服務構建(第2版)
作 者: 方志朋 著
定 價: 79
出?版?社: 人民郵電出版社
出版日期: 2019年09月01日
頁 數: 296
裝 幀: 平裝
ISBN: 9787115514882
●章 微服務簡介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微服務的優勢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服務的注冊與發現15
2.1.2服務的負載均衡15
2.1.3服務的容錯16
2.1.4服務網關18
2.1.5服務配置的統一管理19
2.1.6服務鏈路追蹤20
2.2Spring Cloud20
2.2.1簡介20
2.2.2常用組件21
2.2.3項目一覽22
2.3Dubbo簡介23
2.4Spring Cloud與Dubbo比較24
2.5Kubernetes簡介25
2.6Spring Could與Kubernetes比較27
2.7總結28
第3章構建微服務的準備29
3.1JDK的安裝29
3.1.1JDK的和安裝29
3.1.2環境變量的配置29
3.2IDEA的安裝30
3.2.1IDEA的30
3.2.2用IDEA創建一個Spring Boot工程31
3.2.3用IDEA啟動多個Spring Boot工程實例33
3.3構建工具Maven的使用34
3.3.1Maven簡介34
3.3.2Maven的安裝34
3.3.3Maven的核心概念36
3.3.4編寫Pom文件36
3.3.5Maven構建項目的生命周期38
3.3.6常用的Maven命令39
第4章開發框架Spring Boot41
4.1Spring Boot簡介41
4.1.1Spring Boot的特點41
4.1.2Spring Boot的優點42
4.2用IDEA構建Spring Boot工程42
4.2.1項目結構42
4.2.2在Spring Boot工程中構建Web程序43
4.2.3Spring Boot的測試44
4.3Spring Boot配置文件詳解45
4.3.1自定義屬性45
4.3.2將配置文件的屬性賦給實體類46
4.3.3自定義配置文件47
4.3.4多個環境的配置文件48
4.4運行狀態監控Actuator48
4.4.1查看運行程序的健康狀態50
4.4.2查看運行程序的Bean51
4.4.3使用Actuator關閉應用程序53
4.4.4使用shell連接Actuator54
4.5Spring Boot整合JPA55
4.6Spring Boot整合Redis58
4.6.1Redis簡介58
4.6.2Redis的安裝58
4.6.3在Spring Boot中使用Redis58
4.7Spring Boot整合Swagger2,搭建Restful API在線文檔60
第5章服務注冊和發現Eureka64
5.1Eureka簡介64
5.1.1什麼是Eureka64
5.1.2為什麼選擇Eureka64
5.1.3Eureka的基本架構65
5.2編寫Eureka Server65
5.3編寫Eureka Client68
5.4源碼解析Eureka71
5.4.1Eureka的一些概念71
5.4.2Eureka的高可用架構72
5.4.3Register服務注冊72
5.4.4Renew服務續約76
5.4.5為什麼Eureka Client獲取服務實例這麼慢77
5.4.6Eureka 的自我保護模式78
5.5構建高可用的Eureka Server集群79
5.6總結81
第6章負載均衡Ribbon82
6.1RestTemplate簡介82
6.2Ribbon簡介83
6.3使用RestTemplate和Ribbon來消費服務83
6.4LoadBalancerClient簡介86
6.5源碼解析Ribbon88
第7章聲明式調用Feign99
7.1寫一個Feign客戶端99
7.2FeignClient詳解103
7.3FeignClient的配置104
7.4從源碼的角度講解Feign的工作原理105
7.5在Feign中使用HttpClient和OkHttp108
7.6Feign是如何實現負載均衡的110
7.7總結112
第8章熔斷器Hystrix113
8.1Hystrix簡介113
8.2Hystrix解決的問題113
8.3Hystrix的設計原則115
8.4Hystrix的工作機制115
8.5在RestTemplate和Ribbon上使用熔斷器116
8.6在Feign上使用熔斷器117
8.7使用Hystrix Dashboard監控熔斷器的狀態118
8.7.1在RestTemplate中使用Hystrix Dashboard118
8.7.2在Feign中使用Hystrix Dashboard121
8.8使用Turbine聚合監控122
第9章路由網關Spring Cloud Zuul124
9.1為什麼需要Zuul124
9.2Zuul的工作原理124
9.3案例實戰126
9.3.1搭建Zuul服務126
9.3.2在Zuul上配置API接口的版本號129
9.3.3在Zuul上配置熔斷器130
9.3.4在Zuul中使用過濾器131
9.3.5Zuul的常見使用方式133
0章 服務網關135
10.1服務網關的實現原理135
10.2斷言工廠136
10.2.1After路由斷言工廠136
10.2.2Header斷言工廠138
10.2.3Cookie路由斷言工廠139
10.2.4Host路由斷言工廠140
10.2.5Method路由斷言工廠140
10.2.6Path 路由斷言工廠141
10.2.7Query 路由斷言工廠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.2service-gateway工程詳細介紹157
10.6總結159
1章 服務注冊和發現Consul160
11.1什麼是Consul160
11.1.1基本術語160
11.1.2Consul的特點和功能161
11.1.3Consul的原理161
11.1.4Consul的基本架構161
11.1.5Consul服務注冊發現流程163
11.2Consul與Eureka比較163
11.3和安裝Consul164
11.4使用Spring Cloud Consul進行服務注冊和發現165
11.4.1服務提供者consul-provider165
11.4.2服務消費者consul-provider167
11.5使用Spring Cloud Consul Config做服務配置中心168
11.6動態刷新配置170
11.7總結171
2章 配置中心Spring Cloud Config172
12.1Config Server從本地讀取配置文件172
12.1.1構建Config Server172
12.1.2構建Config Client174
12.2Config Server從遠程Git倉庫讀取配置文件175
12.3構建高可用的Config Server176
12.3.1構建Eureka Server177
12.3.2改造Config Server178
12.3.3改造Config Client178
12.4使用Spring Cloud Bus刷新配置180
12.5將配置存儲在MySQL數據庫中182
12.5.1改造config-server工程182
12.5.2初始化數據庫183
3章 服務鏈路追蹤Spring Cloud Sleuth184
13.1為什麼需要Spring Cloud Sleuth184
13.2基本術語184
13.3案例講解186
13.3.1啟動Zipkin Server187
13.3.2構建服務提供者187
13.3.3構建服務消費者189
13.3.4項目演示191
13.4在鏈路數據中添加自定義數據192
13.5使用RabbitMQ 傳輸鏈路數據192
13.6在MySQL數據庫中存儲鏈路數據194
13.7在ElasticSearch中存儲鏈路數據195
13.8用Kibana展示鏈路數據196
4章 微服務監控Spring Boot Admin198
14.1使用Spring Boot Admin監控Spring Boot應用程序199
14.1.1創建Spring Boot Admin Server199
14.1.2創建Spring Boot Admin Client200
14.2使用Spring Boot Admin監控Spring Cloud微服務202
14.2.1構建Admin Server202
14.2.2構建Admin Client204
14.3在Spring Boot Admin中添加Security和Mail組件205
14.3.1Spring Boot Admin集成Security組件206
14.3.2Spring Boot Admin集成Mail組件208
5章 Spring Boot Security詳解209
15.1Spring Security簡介209
15.1.1什麼是Spring Security209
15.1.2為什麼選擇Spring Security209
15.1.3Spring Security提供的安全模塊210
15.2Spring Boot Security與Spring Security的關繫211
15.3Spring Boot Security案例詳解211
15.3.1構建Spring Boot Security工程211
15.3.2配置Spring Security213
15.3.3編寫相關界面215
15.3.4Spring Security方法級別上的保護220
15.3.5從數據庫中讀取用戶的認證信息223
15.4總結228
6章 使用Spring Cloud OAuth2保護微服務繫統230
16.1什麼是OAuth2230
16.2如何使用Spring OAuth2231
16.2.1OAuth2 Provider231
16.2.2OAuth2 Client235
16.3案例分析236
16.3.1編寫Eureka Server237
16.3.2編寫Uaa授權服務237
16.3.3編寫service-hi資源服務244
16.4總結250
7章 使用Spring Security OAuth2和JWT保護微服務繫統251
17.1JWT簡介251
17.1.1什麼是JWT251
17.1.2JWT的結構252
17.1.3JWT的應用場景253
17.1.4如何使用JWT253
17.2案例分析253
17.2.1案例架構設計253
17.2.2編寫主Maven工程254
17.2.3編寫Eureka Server256
17.2.4編寫Uaa授權服務256
17.2.5編寫user-service資源服務262
17.3總結270
8章 使用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
內容簡介
《深入理解Spring Cloud與微服務構建(第2版)》共分為18章,全面涵蓋了通過Spring Cloud構建微服務的相關知識點。、2章詳細介紹了微服務架構和Spring Cloud。第3、4章講解了通過Spring Cloud構建微服務的準備工作。第5~14章以案例為切入點,講解了通過Spring Cloud構建微服務的基礎組件,包括Eureka、Ribbon、Feign、Hystrix、Zuul、Gateway、Consul、Config、Sleuth、Admint等組件。5~17章講述了使用Spring Cloud OAuth2來保護微服務繫統的相關知識。8章用一個綜合案例全面講解了如何使用Spring Cloud構建微服務,可用於實際開發中。