《精通Spring Cloud微服務架構》是清華大學出版社2019年出版的圖書,作者是[美] 皮奧特·閔可夫斯基。
基本介紹
- 書名:精通Spring Cloud微服務架構
- 作者:[美] 皮奧特·閔可夫斯基
- 譯者:黃進青
- ISBN:9787302530251
- 定價:119元
- 出版時間:2019.07.01
- 印次:1-1
- 印刷日期:2019.07.12
內容簡介
目 錄
第1章 微服務簡介 3
1.1 微服務的優點 3
1.2 使用Spring Framework構建微服務 4
1.3 雲原生應用程式開發方法 4
1.4 了解微服務架構 5
1.4.1 理解服務發現的必要性 7
1.4.2 服務之間的通信 9
1.4.3 故障和斷路器 11
1.5 小結 11
第2章 使用微服務的Spring 13
2.1 關於Spring Boot 13
2.2 使用Spring Boot開發應用程式 15
2.2.1 自定義配置檔案 17
2.2.2 創建RESTful Web服務 20
2.3 API文檔 23
2.3.1 聯合使用Swagger 2和Spring Boot 23
2.3.2 使用Swagger UI測試API 24
2.4 Spring Boot執行器功能 27
2.4.1 套用信息 27
2.4.2 健康信息 29
2.4.3 指標信息 30
2.5 開發者工具 32
2.6 將應用程式與資料庫集成 33
2.7 運行應用程式 36
2.8 小結 40
第3章 Spring Cloud概述 41
3.1 從基礎開始 41
3.1.1 Netflix OSS 42
3.1.2 使用Eureka進行服務發現 43
3.1.3 使用Zuul路由 43
3.1.4 使用Ribbon實現負載均衡 44
3.1.5編寫JavaHTTP客戶端44
3.1.6Hystrix的延遲和容錯能力44
3.1.7使用Archaius進行配置管理45
3.2發現和分散式配置45
3.2.1可選替代方案—Consul46
3.2.2ApacheZookeeper46
3.2.3其他項目47
3.3使用Sleuth進行分散式跟蹤47
3.4訊息傳遞和集成48
3.5雲平台支持49
3.6其他有用的庫50
3.6.1安全性51
3.6.2自動化測試51
3.6.3集群功能51
3.7項目概述51
3.8版本列車52
3.9小結54
第二部分微服務架構常見元素和SpringCloud實現
第4章服務發現57
4.1在伺服器端運行Eureka57
4.2在客戶端啟用Eureka59
4.2.1關機時取消註冊60
4.2.2以編程方式使用發現客戶端62
4.3高級配置設定63
4.3.1刷新註冊表63
4.3.2更改實例標識符65
4.3.3選擇使用IP位址66
4.3.4回響快取66
4.4啟用客戶端和伺服器之間的安全通信67
4.5EurekaAPI69
4.6副本和高可用性70
4.6.1樣本解決方案的架構70
4.6.2構建示例應用程式71
4.6.3故障轉移75
4.7區域76
4.7.1具有獨立伺服器的區域77
4.7.2構建示例應用程式78
4.8小結80
第5章使用SpringCloudConfig進行分散式配置83
5.1HTTPAPI資源簡介84
5.2構建伺服器端應用程式86
5.3構建客戶端應用程式87
5.4客戶端引導方法88
5.5存儲庫後端類型91
5.5.1檔案系統後端91
5.5.2Git後端92
5.5.3Vault後端96
5.6其他功能98
5.6.1啟動失敗和重試98
5.6.2保護客戶端的安全99
5.7自動重新載入配置99
5.7.1解決方案架構99
5.7.2使用@RefreshScope重新載入配置100
5.7.3使用來自訊息代理的事件103
5.7.4監視ConfigServer上的存儲庫更改104
5.8小結108
第6章微服務之間的通信109
6.1不同類型的通信109
6.2使用SpringCloud進行同步通信109
6.3使用Ribbon執行負載均衡110
6.3.1使用Ribbon客戶端啟用微服務之間的通信110
6.3.2靜態負載均衡配置111
6.3.3調用其他服務112
6.4將RestTemplate與服務發現結合使用115
6.5使用Feign客戶端118
6.5.1對不同區域的支持118
6.5.2為應用程式啟用Feign119
6.5.3繼承支持123
6.5.4手動創建客戶端124
6.5.5客戶端的自定義124
6.6小結126
第7章高級負載均衡和斷路器127
7.1負載均衡規則127
7.1.1WeightedResponseTime規則128
7.1.2引入Hoverfly進行測試128
7.1.3測試規則129
7.2自定義Ribbon客戶端131
7.3帶Hystrix的斷路器模式133
7.3.1使用Hystrix構建應用程式133
7.3.2跳閘斷路器137
7.4監控延遲和容錯140
7.4.1公開Hystrix的指標流141
7.4.2Hystrix儀錶板142
7.5故障和帶有Feign的斷路器模式149
7.5.1重試與Ribbon的連線149
7.5.2Hystrix對Feign的支持150
7.6小結153
第8章使用API網關進行路由和過濾155
8.1使用SpringCloudNetflixZuul155
8.1.1構建網關應用程式156
8.1.2與服務發現集成157
8.1.3自定義路由配置158
8.1.4管理端點161
8.1.5提供Hystrix回退bean162
8.1.6Zuul過濾器164
8.2使用SpringCloudGateway166
8.2.1為項目啟用SpringCloudGateway167
8.2.2內置謂詞和過濾器168
8.2.3微服務的網關170
8.2.4與服務發現集成172
8.3小結173
第9章分散式日誌記錄和跟蹤175
9.1微服務的最佳日誌記錄實踐175
9.2使用SpringBoot記錄日誌177
9.3使用ELKStack集中日誌179
9.3.1在機器上設定ELK堆疊180
9.3.2將應用程式與ELKStack集成181
9.4SpringCloudSleuth188
9.4.1將Sleuth與應用程式集成189
9.4.2使用Kibana搜尋事件190
9.4.3集成Sleuth和Zipkin192
9.5小結198
第10章其他配置和發現功能199
10.1使用SpringCloudConsul199
10.1.1運行Consul代理200
10.1.2在客戶端集成201
10.1.3服務發現201
10.1.4分散式配置208
10.2使用SpringCloudZookeeper212
10.2.1運行Zookeeper213
10.2.2服務發現214
10.2.3分散式配置216
10.3小結217
第11章訊息驅動的微服務219
11.1了解SpringCloudStream219
11.2構建訊息傳遞系統220
11.2.1啟用SpringCloudStream220
11.2.2聲明和綁定頻道222
11.2.3自定義與RabbitMQ代理的連線224
11.2.4與其他SpringCloud項目集成228
11.3發布/訂閱模型231
11.3.1運行示例系統232
11.3.2擴展和分組233
11.4配置選項238
11.4.1SpringCloudStream屬性238
11.4.2綁定屬性239
11.5高級編程模型240
11.5.1製作訊息240
11.5.2轉換240
11.5.3有條件地使用訊息241
11.6使用ApacheKafka242
11.6.1運行Kafka242
11.6.2自定義應用程式設定243
11.6.3KafkaStreamsAPI支持244
11.6.4配置屬性245
11.7多個綁定器245
11.8小結247
第12章保護API的安全249
12.1為SpringBoot啟用HTTPS249
12.2保證發現伺服器的安全251
12.2.1註冊安全的應用程式251
12.2.2通過HTTPS服務Eureka251
12.3保證配置伺服器的安全255
12.3.1加密和解密255
12.3.2配置客戶端和伺服器的身份驗證257
12.4使用OAuth2進行授權259
12.4.1OAuth2簡介259
12.4.2構建授權伺服器260
12.4.3客戶端配置264
12.4.4使用JDBC後端存儲266
12.4.5服務間授權269
12.4.6在API網關上啟用SSO273
12.5小結274
第13章測試Java微服務275
13.1測試策略275
13.2測試SpringBoot應用程式277
13.2.1構建示例應用程式278
13.2.2與資料庫集成279
13.3單元測試280
13.4組件測試282
13.4.1使用記憶體資料庫運行測試282
13.4.2處理HTTP客戶端和服務發現283
13.4.3實現示例測試285
13.5集成測試286
13.5.1對測試進行分類286
13.5.2捕獲HTTP流量287
13.6契約測試289
13.6.1使用Pact289
13.6.2使用SpringCloudContract294
13.7性能測試301
13.8小結305
第三部分Docker支持和SpringCloud平台
第14章Docker支持309
14.1關於Docker309
14.2安裝Docker311
14.3常用的Docker命令312
14.3.1運行和停止容器312
14.3.2列出並刪除容器313
14.3.3提取和推送鏡像314
14.3.4構建鏡像315
14.3.5創建網路316
14.4創建具有微服務的Docker鏡像316
14.4.1Dockerfile317
14.4.2運行容器化微服務319
14.4.3使用Maven外掛程式構建鏡像321
14.4.4高級Docker鏡像323
14.5持續交付325
14.5.1將Jenkins與Docker集成325
14.5.2構建管道327
14.6使用Kubernetes330
14.6.1概念和組件331
14.6.2通過Minikube以本地方式運行Kubernetes332
14.6.3部署應用程式333
14.6.4維護集群336
14.7小結338
第15章雲平台上的Spring微服務339
15.1PivotalCloudFoundry339
15.1.1使用模式340
15.1.2準備應用程式341
15.1.3部署應用程式343
15.1.4維護347
15.2Heroku平台352
15.2.1部署方法352
15.2.2準備應用程式355
15.2.3測試部署356
15.3小結358