《瘋狂Spring Cloud微服務架構實戰》是2017年電子工業出版社出版的圖書,作者是楊恩雄。
基本介紹
- 中文名:瘋狂Spring Cloud微服務架構實戰
- 作者:楊恩雄
- 類別:計算機/網路類圖書
- 出版社:電子工業出版社
- 出版時間:2017年12月
- 頁數:296 頁
- 定價:58 元
- 開本:16 開
- 裝幀:平裝
- ISBN:9787121331091
內容簡介,圖書目錄,作者簡介,
內容簡介
本書以Spring Cloud為基礎,深入講解微服務開發的相關框架,包括服務管理框架Eureka、負載均衡框架Ribbon、服務客戶端Feign、容錯框架Hystrix、訊息框架Stream等。
除了介紹這些微服務相關的框架外,在本書的第11章,還介紹了如何使用Spring Data框架操作各個主流資料庫(MySQL、MongoDB、Redis)。在第12章,以一個案例為基礎結束本書內容,在該章中講解了模板引擎Thymeleaf,整本書將會為大家提供一整套微服務套用開發的解決方案。
本書適合有一定Java開發基礎的技術人員,尤其是正在使用或準備使用微服務構建高並發、大數據套用的技術人員及團隊。
圖書目錄
第1章 Spring Cloud概述 1
1.1 傳統的套用 2
1.1.1 單體套用 2
1.1.2 架構演進 3
1.1.3 架構要求 4
1.2 微服務與Spring Cloud 5
1.2.1 什麼是微服務 5
1.2.2 關於Netflix OSS 6
1.2.3 Spring Cloud與Netflix 6
1.2.4 Spring Cloud的主要模組 6
1.3 學習方面的準備工作 7
1.3.1 下載本書的軟體及源碼 7
1.3.2 導入本書的案例 7
1.4 本章小結 8
第2章 搭建開發環境 9
2.1 安裝與配置Maven 10
2.1.1 關於Maven 10
2.1.2 下載與安裝Maven 11
2.1.3 配置遠程倉庫 11
2.2 安裝Eclipse 12
2.2.1 Eclipse版本 12
2.2.2 在Eclipse中配置Maven 12
2.3 Spring Boot 13
2.3.1 Spring Boot簡介 13
2.3.2 新建Maven項目 14
2.3.3 編寫啟動類 15
2.3.4 編寫控制器 16
2.3.5 發布REST WebService 17
2.4 Spring Boot配置檔案 18
2.4.1 默認配置檔案 18
2.4.2 指定配置檔案位置 19
2.4.3 yml檔案 19
2.4.4 運行時指定profiles配置 20
2.4.5 熱部署 20
2.5 Spring Cloud的版本 21
2.6 本章小結 21
第3章 微服務發布與調用 22
3.1 Eureka介紹 23
3.1.1 關於Eureka 23
3.1.2 Eureka架構 23
3.1.3 伺服器端 24
3.1.4 服務提供者 24
3.1.5 服務調用者 24
3.2 個Eureka套用 24
3.2.1 構建伺服器 24
3.2.2 伺服器註冊開關 27
3.2.3 編寫服務提供者 27
3.2.4 編寫服務調用者 29
3.2.5 程式結構 32
3.3 Eureka集群搭建 33
3.3.1 本例集群結構圖 33
3.3.2 改造伺服器端 34
3.3.3 改造服務提供者 35
3.3.4 改造服務調用者 37
3.3.5 編寫REST客戶端進行測試 37
3.4 服務實例的健康自檢 38
3.4.1 程式結構 39
3.4.2 使用Spring Boot Actuator 39
3.4.3 實現套用健康自檢 39
3.4.4 服務查詢 42
3.5 Eureka的常用配置 44
3.5.1 心跳檢測配置 44
3.5.2 註冊表抓取間隔 44
3.5.3 配置與使用元數據 45
3.5.4 自我保護模式 45
3.6 本章小結 46
第4章 負載均衡 47
4.1 Ribbon介紹 48
4.1.1 Ribbon簡介 48
4.1.2 Ribbon子模組 48
4.1.3 負載均衡器組件 48
4.2 個Ribbon程式 49
4.2.1 編寫服務 49
4.2.2 編寫請求客戶端 51
4.2.3 Ribbon的配置 52
4.3 Ribbon的負載均衡機制 53
4.3.1 負載均衡器 53
4.3.2 自定義負載規則 54
4.3.3 Ribbon自帶的負載規則 56
4.3.4 Ping機制 57
4.3.5 自定義Ping 59
4.3.6 其他配置 59
4.4 在Spring Cloud中使用Ribbon 60
4.4.1 準備工作 60
4.4.2 使用代碼配置Ribbon 61
4.4.3 使用配置檔案設定Ribbon 63
4.4.4 Spring使用Ribbon的API 64
4.5 RestTemplate負載均衡 66
4.5.1 @LoadBalanced註解概述 66
4.5.2 編寫自定義註解以及攔截器 66
4.5.3 使用自定義攔截器以及註解 68
4.5.4 在控制器中使用RestTemplate 69
4.6 本章小結 71
第5章 REST客戶端Feign 72
5.1 REST客戶端 73
5.1.1 使用CXF調用REST服務 73
5.1.2 使用Restlet調用REST服務 74
5.1.3 Feign框架介紹 75
5.1.4 個Feign程式 76
5.1.5 請求參數與返回對象 77
5.2 使用Feign 78
5.2.1 編碼器 79
5.2.2 解碼器 80
5.2.3 XML的編碼與解碼 80
5.2.4 自定義編碼器與解碼器 83
5.2.5 自定義Feign客戶端 83
5.2.6 使用第三方註解 85
5.2.7 Feign解析第三方註解 86
5.2.8 請求攔截器 89
5.2.9 接口日誌 89
5.3 在Spring Cloud中使用Feign 90
5.3.1 Spring Cloud整合Feign 91
5.3.2 Feign負載均衡 93
5.3.3 默認配置 93
5.3.4 自定義配置 94
5.3.5 可選配置 97
5.3.6 壓縮配置 98
5.4 本章小結 98
第6章 Spring Cloud的保護機制 99
6.1 概述 100
6.1.1 實際問題 100
6.1.2 傳統的解決方式 101
6.1.3 集群容錯框架Hystrix 101
6.1.4 Hystrix的功能 102
6.2 個Hystrix程式 103
6.2.1 準備工作 103
6.2.2 客戶端使用Hystrix 103
6.2.3 調用錯誤服務 105
6.2.4 Hystrix的運作流程 106
6.3 Hystrix的使用 108
6.3.1 命令執行 108
6.3.2 屬性配置 110
6.3.3 回退 111
6.3.4 回退的模式 112
6.3.5 斷路器開啟 113
6.3.6 斷路器關閉 116
6.3.7 隔離機制 118
6.3.8 合併請求 121
6.3.9 請求快取 125
6.4 在Spring Cloud中使用Hystrix 127
6.4.1 整合Hystrix 128
6.4.2 命令配置 130
6.4.3 默認配置 131
6.4.4 快取註解 132
6.4.5 合併請求註解 134
6.4.6 Feign與Hystrix整合 136
6.4.7 Hystrix監控 140
6.5 本章小結 142
第7章 微服務集群網關 143
7.1 Zuul框架介紹 144
7.1.1 關於Zuul 144
7.1.2 Zuul的功能 144
7.2 在Web項目中使用Zuul 145
7.2.1 Web項目整合Zuul 145
7.2.2 測試路由功能 145
7.2.3 過濾器運行機制 147
7.3 在微服務集群中初試Zuul 148
7.3.1 集群搭建 149
7.3.2 路由到集群服務 150
7.3.3 Zuul Http客戶端 153
7.4 路由配置 153
7.4.1 簡單路由 154
7.4.2 跳轉路由 155
7.4.3 Ribbon路由 155
7.4.4 自定義路由規則 156
7.4.5 忽略路由 157
7.5 Zuul的其他配置 157
7.5.1 請求頭配置 157
7.5.2 路由端點 158
7.5.3 Zuul與Hystrix 158
7.5.4 在Zuul中預載入Ribbon 161
7.6 Zuul功能進階 161
7.6.1 過濾器優先權 161
7.6.2 自定義過濾器 162
7.6.3 動態載入過濾器 163
7.6.4 禁用過濾器 165
7.6.5 請求上下文 166
7.6.6 @EnableZuulServer註解 168
7.6.7 error過濾器 169
7.6.8 動態路由 171
7.7 本章小結 172
第8章 微服務與訊息驅動 173
8.1 Spring Cloud Stream介紹 174
8.1.1 關於Stream框架 174
8.1.2 Stream框架的組成部分 174
8.1.3 訊息代理中間件 174
8.2 RabbitMQ框架 175
8.2.1 RabbitMQ和AMQP 175
8.2.2 下載與運行 176
8.2.3 編寫生產者 177
8.2.4 編寫消費者 179
8.2.5 交換器、綁定與佇列 180
8.3 Apache Kafka框架 181
8.3.1 關於Kafka 181
8.3.2 運行Kafka伺服器 182
8.3.3 編寫生產者 182
8.3.4 編寫消費者 184
8.3.5 消費者組 185
8.4 開發訊息微服務 185
8.4.1 準備工作 186
8.4.2 編寫生產者 187
8.4.3 編寫消費者 188
8.4.4 更換綁定器 189
8.4.5 Sink、Source與Processor 190
8.4.6 消費者組 191
8.5 本章小結 192
第9章 集群配置中心 193
9.1 概述 194
9.1.1 關於Spring Cloud Config 194
9.1.2 套用結構 195
9.1.3 引導程式簡介 195
9.1.4 搭建SVN環境 196
9.2 構建個例子 196
9.2.1 創建伺服器 196
9.2.2 配置SVN倉庫 197
9.2.3 創建客戶端 199
9.2.4 從客戶端讀取SVN配置 200
9.2.5 目錄配置總結 201
9.2.6 刷新配置 202
9.2.7 刷新Bean 203
9.3 配置的加密和解密 205
9.3.1 為伺服器安裝JCE 205
9.3.2 加密和解密端點 205
9.3.3 SVN存儲加密數據 206
9.3.4 非對稱加密 207
9.4 其他配置 207
9.4.1 伺服器健康指示器 207
9.4.2 客戶端的錯誤提前與重試機制 208
9.4.3 安全配置 209
9.4.4 訪問伺服器配置 210
9.5 整合使用 210
9.5.1 準備工作 210
9.5.2 配置伺服器、客戶端整合Eureka 212
9.5.3 整合Zuul 214
9.5.4 整合Spring Cloud Bus刷新配置 216
9.5.5 刷新單個節點配置 217
9.6 本章小結 217
第10章 微服務跟蹤 219
10.1 概述 220
10.1.1 實際問題與Sleuth 220
10.1.2 服務跟蹤系統 220
10.1.3 Sleuth的基本概念 220
10.1.4 項目準備 221
10.2 Sleuth整合Zipkin 222
10.2.1 Zipkin簡介 222
10.2.2 構建Zipkin伺服器項目 223
10.2.3 配置微服務 224
10.2.4 查看數據 225
10.2.5 使用MySQL保存數據 228
10.2.6 使用訊息採集數據 230
10.3 Sleuth整合ELK 232
10.3.1 關於ELK 232
10.3.2 下載ELK 233
10.3.3 運行Elasticsearch 233
10.3.4 使用Logstash讀取JSON 234
10.3.5 使用Kibana展示數據 235
10.3.6 使用Logback轉換JSON 237
10.4 本章小結 240
第11章 微服務資料庫實戰 241
11.1 概述 242
11.1.1 關於Spring Data 242
11.1.2 Spring Data的功能 243
11.1.3 Spring Data的模組 243
11.2 Spring Data與JPA 243
11.2.1 構建項目 244
11.2.2 數據訪問層與業務層 245
11.2.3 自定義數據存儲邏輯 247
11.2.4 方法名查詢 248
11.2.5 使用@Query註解 249
11.3 Spring Data與MongoDB 250
11.3.1 安裝MongoDB 250
11.3.2 配置許可權 251
11.3.3 MongoDB的概念 252
11.3.4 構建項目 252
11.3.5 數據訪問層與業務層 253
11.3.6 自定義數據存儲邏輯 254
11.3.7 方法名查詢 256
11.3.8 使用@Query註解 258
11.4 Spring Data與Redis 258
11.4.1 Redis的安裝與配置 258
11.4.2 Redis的數據類型 259
11.4.3 使用Jedis 260
11.4.4 構建Spring Data項目 262
11.4.5 數據訪問層與業務層 263
11.4.6 自定義數據存儲邏輯 265
11.4.7 方法名查詢 267
11.5 本章小結 268
第12章 案例實戰 269
12.1 概述 270
12.1.1 表現層技術 270
12.1.2 案例概述 270
12.1.3 案例技
顯示部分信息
作者簡介
作者楊恩雄,從事十多年的Java EE企業套用開發,曾任中企動力系統設計師、中企開源項目經理、數碼辰星科技公司項目經理,參與過多個企業級項目的設計與架構工作。曾負責辰星“電影票網路銷售系統”的整體架構,精通Activiti、Drools、ESB等開源技術,在SOA、SaaS、大數據套用、網際網路系統架構方面有著豐富的經驗,曾出版《瘋狂Java實戰演義》《瘋狂工作流講義》《瘋狂Spring Cloud微服務架構實戰》等書籍。