-- 會員 / 註冊 --  
 帳號:
 密碼:
  | 註冊 | 忘記密碼
3/26 新書到! 3/19 新書到! 3/14 新書到! 12/12 新書到!
購書流程Q & A站務留言版客服信箱
3ds MaxMayaRhinoAfter EffectsSketchUpZBrushPainterUnity
PhotoShopAutoCadMasterCamSolidWorksCreoUGRevitNuke
C#CC++Java遊戲程式Linux嵌入式PLCFPGAMatlab
駭客資料庫搜索引擎影像處理FluentVR+ARANSYS深度學習
單晶片AVROpenGLArduinoRaspberry Pi電路設計CadenceProtel
HadoopPythonStm32CortexLabview手機程式AndroidiPhone
可查書名,作者,ISBN,3dwoo書號
詳細書籍分類

Spring Cloud微服務:全棧技術與案例解析

( 簡體 字)
作者:尹吉歡 著類別:1. -> 程式設計 -> JAVA -> Spring
譯者:
出版社:機械工業出版社Spring Cloud微服務:全棧技術與案例解析 3dWoo書號: 49478
詢問書籍請說出此書號!

缺書
NT售價: 395

出版日:7/1/2018
頁數:319
光碟數:0
站長推薦:
印刷:黑白印刷語系: ( 簡體 版 )
加入購物車 加到我的最愛
(請先登入會員)
ISBN:9787111601555
作者序 | 譯者序 | 前言 | 內容簡介 | 目錄 | 
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證)
作者序:

譯者序:

前言:

為什么要寫這本書

在互聯網時代,互聯網產品的最大特點就是需要快速發布新功能,支持高并發和大數據。傳統的架構已經慢慢不能支撐互聯網業務的發展,這時候微服務架構順勢而出。

最開始國內很多公司都是基于阿里開源的Dubbo框架來構建微服務的,由于阿里內部的原因,Dubbo已經幾年沒進行維護了,不過今年(2018年)又宣布重新開始維護了。反觀Spring Cloud,其在國外發展得很好,但在國內,由于Dubbo導致其鮮為人知。不過從2017年開始,Spring Cloud在國內的普及度越來越高了,很多中小型互聯網公司都開始擁抱Spring Cloud。

Spring Cloud擁有一整套微服務的解決方案,基于Spring Boot可實現快速集成,且開發效率很高,故其堪稱中小型互聯網公司的福音。而且Spring Cloud發布新功能的頻率非常高,目前僅是大版本就有很多個,同時還有龐大的社區支持,照這樣的發展勢頭,我相信未來幾年國內一定是Spring Cloud的天下。

我一直在使用Spring Boot、Spring Data等一系列框架來進行開發,作為一名Spring的忠實粉絲,自然希望能夠有更多開發者參與進來,于是自己堅持寫Spring Cloud相關的文章,并且將文章涉及的代碼整理好了放在GitHub上面進行分享。在這個過程中我得到了很多開發者朋友的關注,他們向我咨詢一些微服務方面的問題,我也會自己研究和解決一些問題,然后通過文章的形式分享給各位開發者朋友。我寫本書的一個目的是想進一步推廣Spring Cloud在國內的使用和發展,分享自己在微服務領域的一些小小的經驗。

后來有幸結識了楊福川老師,在楊老師的邀請下我決定出一本與Spring Cloud微服務開發相關的書籍。

讀者對象

Java開發工程師

Spring Cloud用戶和愛好者

微服務愛好者

本書的讀者對象主要是Java開發人員,特別是工作1∼3年的開發人員,這個階段的開發人員資歷尚淺,正需要一些實用的技術和經驗來提升自己,Spring Cloud正是一門符合提升要求的技術。因為它現在正在快速發展中,越來越多的企業開始使用Spring Cloud。相信在不久的將來,Spring Cloud將會成為Java開發人員面試的標配。

本書內容

本書主打的是與微服務相關的實戰體系。第一部分準備篇,可幫助各位讀者了解微服務以及Spring Cloud的概念。第二部分基礎篇會對Spring Cloud中常用的模塊進行詳細講解。第三部分實戰篇開始實戰性質的內容講解,包括選擇配置中心、自研發配置中心、分布式跟蹤、微服務安全認證、Spring Boot Admin管理微服務、快速生成API文檔等實用內容。

最后一部分高級篇也是難度比較大的一部分,主要內容如下:

對Zuul進行擴展,即對認證、限流、降級、灰度發布等內容進行講解。

講解緩存框架的使用,解決緩存穿透、緩存雪崩等問題。

數據存儲的選型,比如對Mysql、Mongodb、ElasticSearch的使用進行講解。

分布式事務的解決方案,重點是利用消息隊列開發可靠性消息服務來實現數據的最終一致性。

講解分布式任務調度框架Elastic Job。

講解分庫分表的解決方案Sharding JDBC。

勘誤和支持

由于作者的水平有限,書中難免會出現一些不準確的地方,懇請讀者批評指正。為此,特意貼出本書源碼地址。如果你遇到任何問題或者有其他寶貴意見,歡迎發送郵件至郵箱,期待能夠得到你們的真摯反饋。

致謝

首先要感謝Spring Cloud的各位開發人員,感謝你們開發出這樣一個好用的框架。

感謝機械工業出版社華章公司的楊福川老師,是你在這半年多的時間中始終支持我的寫作,你的鼓勵和幫助引導我順利完成全部書稿。

感謝機械工業出版社華章公司的張錫鵬老師,是你在本書的審稿過程中給了我很多實用的建議,讓我學習到了很多寫作方面的技巧。

最后感謝家人的支持和理解,讓我可以把精力全部投入到本書的寫作中。

謹以此書獻給我最親愛的家人,以及眾多熱愛Spring Cloud的朋友們!
內容簡介:

這是一本以實戰為導向的Spring Cloud微服務全棧技術指南。

本書不僅對Spring Cloud的全部組件進行了詳細講解,而且還總結和梳理了時下最流行的Spring Cloud微服務架構實戰經驗。注重實戰,本書主要以代碼示例的方式來幫助讀者理解框架的使用和微服務的架構與設計。

全書共18章,分為4個部分:

第一部分 準備篇(第1~2章)

首先對微服務和Spring Cloud做了宏觀的介紹,然后詳細講解了Spring Cloud開發環境的準備,以及Spring Boot的使用。

第二部分 基礎篇(第3~7章)

這一部分對Spring Cloud的各種常用模塊進行了詳細講解,如注冊中心Eureka、客戶端負載均衡Ribbon、聲明式REST客戶端Feign、熔斷保護中間件Hystrix、負載均衡器Zuul等,掌握了這些內容,就基本上掌握了Spring Cloud的主要技術。

第三部分 實戰篇(第8~12章)

這部分以案例的形式對微服務架構中經常會遇到的問題進行了詳細講解,涵蓋分布式配置管理、Sleuth服務跟蹤、微服務間調用的安全認證、Spring Boot Admin、服務的API文檔管理等多個主題。

第四部分 高級篇(第13~18章)

深入講解了Spring Cloud的高級應用與擴展知識,如API網關的擴展、微服務的緩存與存儲、微服務的分布式事務解決方案、分布式任務調度、分庫分表解決方案等。



微服務的誕生絕非偶然,它是互聯網高速發展、技術快速更新迭代、傳統技術架構無法適應新的業務場景需求等多重因素推動下誕生的產物。在 Java 領域,Spring Cloud 是微服務架構的優秀解決方案,功能完備、學習成本低,是微服務的不二之選。本書對 Spring Cloud 的全棧技術體系(模塊)進行了詳細的講解,同時提供了商業案例。通過本書,不僅能幫助讀者快速學會使用 Spring Cloud,也能掌握微服務典型場景的解決方案。

通過閱讀本書,你將學會:

使用Spring Boot開發Web項目

使用Spring Cloud開發分布式系統

Spring Data Redis、Mongodb、ElasticSearch框架的使用

配置中心結合Zuul進行動態限流降級

分布式事務的解決思路

分布式任務調度框架Elastic Job的使用

分庫分表中間件Sharding JDBC的使用
目錄:

前言
第一部分 準備篇
第1章 Spring Cloud與微服務概述 2
1.1 傳統的單體應用 2
1.1.1 改進單體應用的架構 2
1.1.2 向微服務靠攏 3
1.2 什么是微服務 4
1.2.1 使用微服務架構的優勢和劣勢 4
1.2.2 重構前的準備工作 5
1.3 什么是Spring Cloud 5
1.3.1 Spring Cloud模塊介紹 5
1.3.2 Spring Cloud版本介紹 6
1.4 本章小結 7
第2章 實戰前的準備工作 8
2.1 開發環境的準備 8
2.2 Spring Boot入門 9
2.2.1 Spring Boot簡介 9
2.2.2 搭建Spring Boot項目 9
2.2.3 編寫第一個REST接口 11
2.2.4 讀取配置文件 11
2.2.5 profiles多環境配置 13
2.2.6 熱部署 13
2.2.7 actuator監控 15
2.2.8 統一異常處理 16
2.2.9 異步執行 18
2.2.10 隨機端口 21
2.3 本章小結 23
第二部分 基礎篇
第3章 Eureka注冊中心 26
3.1 Eureka 26
3.2 使用Eureka編寫注冊中心服務 27
3.3 編寫服務提供者 29
3.3.1 創建項目注冊到Eureka 29
3.3.2 編寫提供接口 30
3.4 編寫服務消費者 31
3.4.1 直接調用接口 31
3.4.2 通過Eureka來消費接口 32
3.5 開啟Eureka認證 33
3.6 Eureka高可用搭建 33
3.6.1 高可用原理 33
3.6.2 搭建步驟 34
3.7 常用配置講解 35
3.7.1 關閉自我保護 35
3.7.2 自定義Eureka的Instance ID 35
3.7.3 自定義實例跳轉鏈接 36
3.7.4 快速移除已經失效的服務信息 37
3.8 擴展使用 38
3.8.1 Eureka REST API 38
3.8.2 元數據使用 40
3.8.3 EurekaClient使用 41
3.8.4 健康檢查 43
3.8.5 服務上下線監控 45
3.9 本章小結 46
第4章 客戶端負載均衡Ribbon 47
4.1 Ribbon 47
4.1.1 Ribbon模塊 47
4.1.2 Ribbon使用 48
4.2 RestTemplate結合Ribbon使用 49
4.2.1 使用RestTemplate與整合Ribbon 49
4.2.2 RestTemplate負載均衡示例 52
4.2.3 @LoadBalanced注解原理 53
4.2.4 Ribbon API使用 57
4.2.5 Ribbon饑餓加載 58
4.3 負載均衡策略介紹 59
4.4 自定義負載策略 60
4.5 配置詳解 61
4.5.1 常用配置 61
4.5.2 代碼配置Ribbon 62
4.6 重試機制 63
4.7 本章小結 64
第5章 聲明式REST客戶端Feign 65
5.1 使用Feign調用服務接口 65
5.1.1 在Spring Cloud中集成Feign 66
5.1.2 使用Feign調用接口 66
5.2 自定義Feign的配置 67
5.2.1 日志配置 67
5.2.2 契約配置 69
5.2.3 Basic認證配置 69
5.2.4 超時時間配置 70
5.2.5 客戶端組件配置 71
5.2.6 GZIP壓縮配置 72
5.2.7 編碼器解碼器配置 72
5.3 脫離Spring Cloud 使用Feign 73
5.3.1 原生注解方式 73
5.3.2 構建Feign對象 74
5.3.3 其他配置 75
5.4 本章小結 76
第6章 Hystrix 服務容錯處理 77
6.1 Hystrix 77
6.1.1 Hystrix的簡單使用 77
6.1.2 回退支持 78
6.1.3 信號量策略配置 79
6.1.4 線程隔離策略配置 79
6.1.5 結果緩存 80
6.1.6 緩存清除 81
6.1.7 合并請求 83
6.2 在Spring Cloud中使用Hystrix 84
6.2.1 簡單使用 84
6.2.2 配置詳解 85
6.2.3 Feign整合Hystrix服務容錯 88
6.2.4 Feign中禁用Hystrix 90
6.3 Hystrix監控 91
6.4 整合Dashboard查看監控數據 92
6.5 Turbine聚合集群數據 94
6.5.1 Turbine使用 94
6.5.2 context-path導致監控失敗 95
6.6 本章小結 95
第7章 API網關 96
7.1 Zuul 簡介 96
7.2 使用Zuul構建微服務網關 97
7.2.1 簡單使用 97
7.2.2 集成Eureka 98
7.3 Zuul路由配置 98
7.4 Zuul過濾器講解 99
7.4.1 過濾器類型 100
7.4.2 請求生命周期 100
7.4.3 使用過濾器 101
7.4.4 過濾器禁用 103
7.4.5 過濾器中傳遞數據 103
7.4.6 過濾器攔截請求 104
7.4.7 過濾器中異常處理 106
7.5 Zuul容錯和回退 108
7.5.1 容錯機制 108
7.5.2 回退機制 109
7.6 Zuul高可用 111
7.7 本章小結 111
第三部分 實戰篇
第8章 分布式配置管理 114
8.1 自研配置管理框架Smconf簡介 114
8.2 Smconf工作原理 115
8.3 Smconf 部署 116
8.3.1 Mongodb安裝 116
8.3.2 Zookeeper安裝 117
8.3.3 Smconf Server部署 118
8.4 項目中集成Smconf 119
8.4.1 集成Smconf 119
8.4.2 使用Smconf 120
8.4.3 配置更新回調 121
8.5 Smconf詳細使用 122
8.5.1 源碼編譯問題 122
8.5.2 后臺賬號管理 122
8.5.3 REST API 123
8.6 Smconf源碼解析 125
8.6.1 Client啟動 125
8.6.2 啟動加載配置 127
8.6.3 配置修改推送原理 128
8.7 本章小結 129
第9章 Sleuth服務跟蹤 130
9.1 Spring Cloud集成Sleuth 130
9.2 整合Logstash 131
9.2.1 ELK簡介 131
9.2.2 輸出JSON格式日志 131
9.3 整合Zipkin 133
9.3.1 創建Zipkin數據收集服務 133
9.3.2 項目集成Zipkin發送調用鏈數據 134
9.3.3 抽樣采集數據 135
9.3.4 用RabbitMq代替Http發送調用鏈數據 135
9.3.5 用Elasticsearch存儲調用鏈數據 136
9.4 本章小結 137
第10章 微服務之間調用的安全認證 138
10.1 什么是JWT 138
10.2 創建統一的認證服務 139
10.2.1 表結構 139
10.2.2 JWT工具類封裝 139
10.2.3 認證接口 141
10.3 服務提供方進行調用認證 142
10.4 服務消費方申請Token 143
10.5 Feign調用前統一申請Token傳遞到調用的服務中 145
10.6 Zuul中傳遞Token到路由的服務中 147
10.7 本章小結 148
第11章 Spring Boot Admin 149
11.1 Spring Boot Admin的使用方法 149
11.1.1 創建Spring Boot Admin項目 149
11.1.2 將服務注冊到Spring Boot Admin 150
11.1.3 如何在Admin中查看各個服務的日志 151
11.2 開啟認證 152
11.3 集成Eureka 153
11.4 集成Turbine 154
11.5 監控服務 155
11.5.1 郵件警報 156
11.5.2 自定義釘釘警報 156
11.6 本章小結 159
第12章 服務的API文檔管理 160
12.1 Swagger簡介 160
12.2 集成Swagger管理API文檔 161
12.2.1 封裝Swagger Starter 161
12.2.2 在項目中集成Swagger starter 162
12.2.3 使用Swagger生成文檔 162
12.2.4 在線測試接口 163
12.3 Swagger注解 164
12.4 Eureka 控制臺快速查看Swagger文檔 169
12.5 本章小結 169
第四部分 高級篇
第13章 API網關擴展 172
13.1 用戶認證 172
13.1.1 動態管理不需要攔截的API請求 172
13.1.2 創建認證的用戶服務 174
13.1.3 路由之前的認證 175
13.1.4 向下游微服務中傳遞認證之后的用戶信息 176
13.1.5 內部服務間的用戶信息傳遞 177
13.2 服務限流 179
13.2.1 限流算法 179
13.2.2 單節點限流 179
13.2.3 集群限流 184
13.2.4 具體服務限流 187
13.2.5 具體接口限流 188
13.3 服務降級 194
13.4 灰度發布 196
13.4.1 原理講解 196
13.4.2 根據用戶做灰度發布 197
13.4.3 根據IP做灰度發布 200
13.5 本章小結 200
第14章 微服務之緩存 201
14.1 Guava Cache本地緩存 201
14.1.1 Guava Cache簡介 201
14.1.2 代碼示例 202
14.1.3 回收策略 202
14.2 Redis緩存 203
14.2.1 用Redistemplate 操作Redis 203
14.2.2 用Repository操作Redis 204
14.2.3 Spring Cache 緩存數據 206
14.2.4 擴展Spring Cache支持對每個緩存的時間配置 211
14.2.5 緩存異常處理 212
14.2.6 自定義緩存工具類 214
14.3 防止緩存穿透方案 216
14.3.1 什么是緩存穿透 216
14.3.2 緩存穿透的危害 216
14.3.3 解決方案 217
14.3.4 布隆過濾器介紹 217
14.3.5 代碼示例 217
14.4 防止緩存雪崩方案 219
14.4.1 什么是緩存雪崩 219
14.4.2 緩存雪崩的危害 219
14.4.3 解決方案 219
14.4.4 代碼示例 219
14.4.5 分布式鎖方式 220
14.5 本章小結 221
第15章 微服務之存儲 222
15.1 存儲選型 222
15.2 Mongodb 223
15.2.1 集成Spring Data Mongodb 223
15.2.2 添加數據操作 223
15.2.3 索引使用 225
15.2.4 修改數據操作 227
15.2.5 刪除數據操作 228
15.2.6 查詢數據操作 229
15.2.7 GridFS操作 231
15.2.8 用Repository方式操作數據 232
15.2.9 自增ID實現 236
15.2.10 批量更新擴展 239
15.3 Mysql 243
15.3.1 集成Spring JdbcTemplate 243
15.3.2 JdbcTemplate代碼示例 243
15.3.3 封裝JdbcTemplate 操作Mysql更簡單 244
15.3.4 擴展JdbcTemplate使用方式 244
15.3.5 常見問題 248
15.4 Elasticsearch 251
15.4.1 集成Spring Data Elasticsearch 251
15.4.2 Repository示例 251
15.4.3 ElasticsearchTemplate示例 254
15.4.4 索引構建方式 257
15.5 本章小結 259
第16章 微服務之分布式事物解決方案 260
16.1 兩階段型 260
16.2 TCC補償型 261
16.3 最終一致性 261
16.3.1 原理講解 261
16.3.2 創建可靠性消息服務 263
16.3.3 消息存儲表設計 264
16.3.4 提供服務接口 265
16.3.5 創建消息發送系統 269
16.3.6 消費消息邏輯 273
16.3.7 消息管理系統 275
16.4 最大努力通知型事物 276
16.4.1 介紹 276
16.4.2 原理 276
16.5 本章小結 276
第17章 分布式任務調度 277
17.1 Elastic-Job 277
17.1.1 Elastic-Job介紹 277
17.1.2 任務調度目前存在的問題 277
17.1.3 為什么選擇Elastic-Job 278
17.2 快速集成 279
17.3 任務使用 280
17.3.1 簡單任務 280
17.3.2 數據流任務 281
17.3.3 腳本任務 282
17.4 配置參數講解 282
17.4.1 注冊中心配置 283
17.4.2 作業配置 283
17.4.3 dataflow獨有配置 284
17.4.4 script獨有配置 284
17.5 多節點并行調度 285
17.5.1 分片概念 285
17.5.2 任務節點分片策略 285
17.5.3 業務數據分片處理 286
17.6 事件追蹤 289
17.7 擴展功能 290
17.7.1 自定義監聽器 290
17.7.2 定義異常處理 291
17.8 運維平臺 291
17.8.1 功能列表 292
17.8.2 部署運維平臺 292
17.8.3 運維平臺使用 293
17.9 使用經驗分享 296
17.9.1 任務的劃分和監控 296
17.9.2 任務的擴展性和節點數量 297
17.9.3 任務的重復執行 297
17.9.4 overwrite覆蓋問題 298
17.9.5 流水式任務 298
17.10 本章小結 299
第18章 分庫分表解決方案 300
18.1 Sharding-JDBC 300
18.1.1 介紹 300
18.1.2 功能列表 301
18.1.3 相關概念 301
18.2 快速集成 302
18.3 讀寫分離實戰 304
18.3.1 準備數據 304
18.3.2 配置讀寫分離 304
18.3.3 驗證讀從庫 305
18.3.4 驗證寫主庫 307
18.3.5 Hint強制路由主庫 308
18.4 分庫分表實戰 309
18.4.1 常用分片算法 310
18.4.2 使用分片算法 310
18.4.3 不分庫只分表實戰 311
18.4.4 既分庫又分表實戰 314
18.5 分布式主鍵 317
18.6 本章小結 319
序: