Spring Cloud Alibaba大型微服務(wù)架構(gòu)項目實戰(zhàn)(上冊)
定 價:109 元
- 作者:十三
- 出版時間:2024/1/1
- ISBN:9787121468728
- 出 版 社:電子工業(yè)出版社
- 中圖法分類:TP368.5
- 頁碼:452
- 紙張:
- 版次:01
- 開本:16開
本書由基礎(chǔ)知識講起,包括微服務(wù)架構(gòu)介紹、技術(shù)選型介紹、基礎(chǔ)環(huán)境搭建。目的是幫助讀者熟悉微服務(wù)架構(gòu)和 Spring Cloud 技術(shù)棧的前置知識,可以順利的過渡到項目實戰(zhàn)階段。之后,會講解微服務(wù)架構(gòu)中的各種組件的整合與使用。這部分內(nèi)容主要包括微服務(wù)架構(gòu)中各組件的介紹與應(yīng)用實操。內(nèi)容涵蓋服務(wù)注冊與發(fā)現(xiàn)、服務(wù)管理、服務(wù)通信、負(fù)載均衡器、網(wǎng)關(guān)、服務(wù)容錯、鏈路追蹤、分布式事務(wù)等知識點,包括相關(guān)組件的搭建和整合,有搭建過程講解,也有整合到代碼中的編碼實踐。當(dāng)然,筆者不會僅僅只介紹這些組件的搭建,包括這些組件的高可用保障、集群搭建和部署架構(gòu)也都會單獨講解。最后,本書的后半部分將會結(jié)合實戰(zhàn)項目,對一個大型的商城項目進(jìn)行拆解和微服務(wù)化,并從零到一落地一個功能完整、流程完善的微服務(wù)項目。由淺入深,逐一擊破微服務(wù)架構(gòu)項目中的難點,讓各位讀者能夠?qū)嶋H地體驗到微服務(wù)架構(gòu)項目的搭建和開發(fā)。在實戰(zhàn)中,讓各位讀者深入理解微服務(wù)技術(shù),掌握微服務(wù)項目開發(fā)的核心知識點。通過本書的講解和提供的完整代碼,讓讀者掌握Spring Cloud Alibaba技術(shù)棧中的組件、知識點,并且能夠應(yīng)用到自己所開發(fā)的項目中。
韓帥,筆名十三,企業(yè)技術(shù)主管、CSDN博客專家、視頻講師。畢業(yè)于安徽省巢湖學(xué)院,具有多年一線開發(fā)經(jīng)驗,歷任高級開發(fā)工程師、產(chǎn)品線后端負(fù)責(zé)人、技術(shù)部門主管等職位。熟練使用Java、SQL、Spring Boot、Vue等計算機語言和開發(fā)框架,有非常豐富的開發(fā)經(jīng)驗,同時也是開源項目的愛好者和貢獻(xiàn)者。
第1章 千里之行:微服務(wù)架構(gòu)學(xué)習(xí)路徑與建議 1
1.1 微服務(wù)架構(gòu)的學(xué)習(xí)路徑 1
1.1.1 上手微服務(wù)架構(gòu)項目會遇到哪些問題 2
1.1.2 梳理微服務(wù)架構(gòu) 3
1.1.3 拆解微服務(wù)架構(gòu)搭建的步驟 4
1.1.4 搭建并整合各個微服務(wù)組件 6
1.1.5 從零到一開發(fā)大型的微服務(wù)架構(gòu)項目 6
1.2 章節(jié)規(guī)劃 8
1.2.1 微服務(wù)架構(gòu)的基礎(chǔ)知識 8
1.2.2 微服務(wù)架構(gòu)各組件的搭建與整合 8
1.2.3 微服務(wù)架構(gòu)項目實戰(zhàn) 9
1.3 學(xué)前必備 10
1.4 學(xué)習(xí)建議 10
第2章 知己知彼:詳解微服務(wù)架構(gòu)的前世今生 12
2.1 什么是微服務(wù)架構(gòu) 13
2.2 為什么要使用微服務(wù)架構(gòu) 15
2.2.1 架構(gòu)的演進(jìn) 15
2.2.2 微服務(wù)架構(gòu)并不是石頭縫里蹦出的孫悟空 21
2.2.3 哪些原因?qū)е孪到y(tǒng)架構(gòu)往微服務(wù)架構(gòu)的方向演進(jìn) 22
2.3 微服務(wù)架構(gòu)的優(yōu)缺點 23
2.3.1 微服務(wù)架構(gòu)的優(yōu)點 24
2.3.2 微服務(wù)架構(gòu)的缺點 26
2.4 架構(gòu)的盡頭是微服務(wù)嗎 27
2.5 系統(tǒng)架構(gòu)升級改造時一定會用到微服務(wù)嗎 27
2.6 學(xué)習(xí)微服務(wù)架構(gòu)有什么好處 29
2.7 微服務(wù)架構(gòu)中的常用技術(shù) 29
第3章 八面玲瓏:一站式解決方案——Spring Cloud技術(shù)棧 33
3.1 微服務(wù)架構(gòu)中常用的技術(shù)及落地方案 33
3.2 Spring Cloud技術(shù)棧 35
3.3 Spring Cloud Netflix套件簡介 37
3.4 Spring Cloud Alibaba套件簡介 38
3.5 選擇Spring Cloud Alibaba的原因 40
第4章 有備無患:項目運行所需的開發(fā)環(huán)境和基礎(chǔ)模板代碼 42
4.1 JDK的安裝和配置 42
4.1.1 下載安裝包 42
4.1.2 安裝JDK 44
4.1.3 配置環(huán)境變量 45
4.1.4 JDK環(huán)境變量驗證 46
4.2 Maven的安裝和配置 47
4.2.1 下載安裝包 47
4.2.2 安裝并配置Maven 48
4.2.3 Maven環(huán)境變量驗證 49
4.2.4 配置國內(nèi)Maven鏡像 49
4.3 開發(fā)工具IDEA的安裝與配置 51
4.3.1 安裝IDEA及其功能簡介 52
4.3.2 配置IDEA的Maven環(huán)境 54
4.3.3 Lombok插件 55
4.4 Spring Boot簡介 56
4.5 Spring Boot項目創(chuàng)建 57
4.5.1 認(rèn)識Spring Initializr 57
4.5.2 使用Spring Initializr初始化一個Spring Boot項目 58
4.5.3 使用IDEA編輯器初始化Spring Boot項目 59
4.6 Spring Boot項目目錄結(jié)構(gòu)簡介 60
4.7 啟動Spring Boot項目 61
4.7.1 在IDEA編輯器中啟動Spring Boot項目 61
4.7.2 Maven插件啟動 63
4.7.3 java -jar命令啟動 64
4.7.4 Spring Boot項目啟動日志 65
4.8 開發(fā)第一個Spring Boot項目 66
4.9 構(gòu)建Spring Cloud Alibaba模板項目 68
第5章 拉開帷幕:詳解服務(wù)通信與服務(wù)治理 74
5.1 認(rèn)識服務(wù)通信 74
5.1.1 為什么需要服務(wù)通信 74
5.1.2 服務(wù)通信簡介 76
5.2 HTTP調(diào)用之編碼實踐 77
5.2.1 被調(diào)用端編碼實現(xiàn) 79
5.2.2 使用HttpClient處理請求 81
5.2.3 使用RestTemplate處理請求 83
5.2.4 使用WebClient處理請求 85
5.3 為什么需要服務(wù)治理 87
5.4 服務(wù)注冊和服務(wù)發(fā)現(xiàn) 90
5.4.1 服務(wù)注冊簡介 90
5.4.2 服務(wù)發(fā)現(xiàn)簡介 91
5.5 健康檢查機制 92
第6章 好戲開場:服務(wù)管理、注冊中心、配置中心——Nacos 94
6.1 Nacos簡介 94
6.2 Nacos下載與啟動 96
6.2.1 下載Nacos 96
6.2.2 啟動Nacos 97
6.3 修改Nacos持久化配置 100
6.4 Nacos整合之服務(wù)注冊編碼實踐 104
6.4.1 編寫服務(wù)代碼 104
6.4.2 在配置文件中添加Nacos配置參數(shù) 107
6.4.3 服務(wù)注冊功能驗證 109
6.4.4 Nacos服務(wù)注冊源碼解析 112
6.5 Nacos整合之服務(wù)發(fā)現(xiàn)編碼實踐 119
6.5.1 編寫服務(wù)消費端的代碼 119
6.5.2 將服務(wù)注冊至Nacos 121
6.5.3 編寫服務(wù)通信代碼 122
6.5.4 服務(wù)發(fā)現(xiàn)的源碼分析 125
6.6 配置中心介紹 140
6.6.1 編碼中常用的配置方式分析 140
6.6.2 為什么需要配置中心 142
6.6.3 什么是配置中心 143
6.6.4 配置中心具備哪些功能 144
6.6.5 配置中心的優(yōu)點 145
6.6.6 配置中心在微服務(wù)架構(gòu)中的作用 146
6.7 整合Nacos配置中心編碼實踐 147
6.7.1 創(chuàng)建基礎(chǔ)工程 147
6.7.2 集成Nacos配置中心 151
6.7.3 Data ID詳解 155
6.7.4 整合Nacos配置中心功能驗證 156
6.8 集成Nacos實現(xiàn)配置動態(tài)刷新 158
6.8.1 實現(xiàn)業(yè)務(wù)開關(guān) 159
6.8.2 配置動態(tài)刷新功能的好處及應(yīng)用場景 162
6.9 多配置文件讀取 163
6.9.1 extension-configs配置項簡介 163
6.9.2 在配置中心創(chuàng)建多個配置文件 164
6.9.3 在代碼中增加多配置讀取的配置及功能驗證 165
第7章 百里挑一:Spring Cloud LoadBalancer負(fù)載均衡器 167
7.1 認(rèn)識負(fù)載均衡 167
7.2 Spring Cloud LoadBalancer簡介 168
7.3 負(fù)載均衡器的功能演示 169
7.4 Spring Cloud LoadBalancer自動配置源碼分析 172
7.5 引入負(fù)載均衡器后發(fā)起請求的源碼分析 177
7.5.1 RestTemplate中沒有攔截器時是怎樣工作的 177
7.5.2 被定制化后的RestTemplate對象是怎樣進(jìn)入攔截器邏輯的 179
7.5.3 攔截器中處理請求的流程 180
7.6 內(nèi)置負(fù)載均衡器的源碼分析 182
7.7 自定義負(fù)載均衡算法 184
7.8 服務(wù)通信和服務(wù)治理知識總結(jié) 187
7.9 multi-service-demo模板項目創(chuàng)建 189
第8章 云中錦書:OpenFeign遠(yuǎn)程調(diào)用實踐 195
8.1 OpenFeign簡介 195
8.2 編碼集成OpenFeign 196
8.3 OpenFeign參數(shù)傳遞編碼實踐 201
8.3.1 簡單類型處理 202
8.3.2 簡單對象類型處理 206
8.3.3 復(fù)雜對象類型處理 209
8.3.4 通用結(jié)果類Result 214
第9章 一夫當(dāng)關(guān):微服務(wù)網(wǎng)關(guān)——Spring Cloud Gateway 217
9.1 微服務(wù)網(wǎng)關(guān)介紹 217
9.1.1 認(rèn)識微服務(wù)網(wǎng)關(guān) 217
9.1.2 網(wǎng)關(guān)層的主流技術(shù)選型 219
9.1.3 選擇Spring Cloud Gateway的原因 222
9.2 整合Spring Cloud Gateway編碼實踐 224
9.2.1 編碼整合Spring Cloud Gateway 224
9.2.2 將網(wǎng)關(guān)服務(wù)整合到服務(wù)中心 227
9.2.3 整合Spring Cloud Gateway報錯503的問題解決方法 230
9.3 微服務(wù)網(wǎng)關(guān)Spring Cloud Gateway之Predicate 231
9.3.1 Spring Cloud Gateway內(nèi)置斷言工廠 231
9.3.2 自定義斷言編碼實踐 235
9.4 微服務(wù)網(wǎng)關(guān)Spring Cloud Gateway之Filter 239
9.4.1 Spring Cloud Gateway的內(nèi)置過濾器 240
9.4.2 自定義網(wǎng)關(guān)過濾器 244
第10章 登高望遠(yuǎn):分布式事務(wù)解決方案——Seata 251
10.1 分布式事務(wù)詳解 251
10.1.1 數(shù)據(jù)庫事務(wù)簡介 251
10.1.2 分布式事務(wù)的問題演示編碼 257
10.1.3 分布式事務(wù)問題演示 271
10.2 分布式事務(wù)解決方案概覽 273
10.2.1 分布式事務(wù)產(chǎn)生的原因 273
10.2.2 分布式事務(wù)的解決方案 275
10.2.3 Alibaba Seata簡介 277
10.3 安裝Seata 278
10.3.1 下載Seata Server安裝包 278
10.3.2 Seata Server的持久化配置 278
10.4 Seata Server整合Nacos服務(wù)中心 282
10.4.1 配置Nacos的連接信息 283
10.4.2 啟動Seata Server 283
10.5 整合Seata解決分布式事務(wù)編碼實踐 285
10.5.1 創(chuàng)建undo_log表 285
10.5.2 整合Seata解決分布式事務(wù) 287
10.6 Seata整合后的基礎(chǔ)檢驗 290
10.6.1 服務(wù)注冊驗證 290
10.6.2 數(shù)據(jù)源代理驗證 291
10.6.3 服務(wù)實例與Seata Server的通信驗證 292
10.7 Seata中間件的重要概念 293
10.8 驗證分布式事務(wù)問題及日志分析 295
10.9 Seata(AT模式)分布式事務(wù)的處理流程 302
第11章 防患未然:服務(wù)容錯解決方案——Sentinel 305
11.1 服務(wù)容錯詳解 305
11.1.1 為什么要引入服務(wù)容錯組件 305
11.1.2 服務(wù)容錯落地方案:流量控制與降級熔斷 307
11.2 Sentinel簡介及控制臺安裝 310
11.2.1 阿里的流量防衛(wèi)兵——Sentinel 310
11.2.2 下載與啟動Sentinel控制臺 312
11.3 整合Sentinel客戶端編碼實踐 314
11.4 Sentinel中的基本概念 317
11.4.1 資源 317
11.4.2 規(guī)則 318
11.5 限流策略和流控效果 319
11.5.1 限流策略之直接流控 319
11.5.2 限流策略之關(guān)聯(lián)流控 321
11.5.3 限流策略之鏈路流控 322
11.5.4 流控效果之快速失敗 323
11.5.5 流控效果之Warm Up 323
11.5.6 流控效果之排隊等待 325
11.5.7 規(guī)則配置及限流效果展示 326
11.6 熔斷策略配置實踐 329
11.6.1 熔斷策略簡介 330
11.6.2 異常熔斷的基礎(chǔ)編碼 331
11.6.3 熔斷策略配置及效果演示 333
11.7 內(nèi)外結(jié)合:降級熔斷+流量控制 337
第12章 順藤摸瓜:鏈路追蹤解決方案——Spring Cloud Sleuth+Zipkin 339
12.1 服務(wù)鏈路追蹤及技術(shù)選型 339
12.1.1 什么是鏈路追蹤 339
12.1.2 Spring Cloud Sleuth簡介 340
12.2 整合Spring Cloud Sleuth編碼實踐 342
12.2.1 基于Spring Cloud Sleuth的鏈路追蹤實現(xiàn)思路 342
12.2.2 代碼基礎(chǔ)改造 343
12.2.3 整合Spring Cloud Sleuth編碼 346
12.3 搭建Zipkin Server實現(xiàn)鏈路追蹤的可視化管理 350
12.3.1 搭建Zipkin Server的詳細(xì)過程 350
12.3.2 整合Zipkin Client編碼實踐 352
12.3.3 鏈路追蹤效果演示 353
第13章 運籌帷幄:Elastic Search + Logstash + Kibana日志中心搭建 357
13.1 ELK——日志收集、分析和展示的解決方案 357
13.1.1 認(rèn)識ELK 357
13.1.2 ELK的工作流程 358
13.1.3 ELK的優(yōu)勢 359
13.1.4 ELK增強版 359
13.2 搭建ELK日志中心詳細(xì)過程 361
13.2.1 日志環(huán)境搭建準(zhǔn)備 361
13.2.2 搭建ELK日志中心 364
13.3 Spring Boot項目將日志輸出至ELK編碼實踐 370
13.4 Kibana配置索引模板和索引模式 373
13.4.1 配置索引模板 374
13.4.2 配置索引模式 375
13.4.3 通過Kibana查詢?nèi)罩?377
13.5 微服務(wù)架構(gòu)項目實戰(zhàn)將日志輸出至ELK編碼實踐 379
13.5.1 微服務(wù)架構(gòu)項目中的日志輸出配置 379
13.5.2 通過Kibana查詢?nèi)罩?382
第14章 一戰(zhàn)定乾坤:大型微服務(wù)架構(gòu)項目設(shè)計與實戰(zhàn) 387
14.1 微服務(wù)實戰(zhàn)項目詳解 387
14.1.1 實戰(zhàn)項目簡介 387
14.1.2 新蜂商城項目的開源歷程 388
14.1.3 新蜂商城項目的功能及數(shù)據(jù)庫設(shè)計 390
14.2 由單體版到微服務(wù)架構(gòu)版的拆分思路 392
14.3 微服務(wù)架構(gòu)實戰(zhàn)項目源碼獲取和項目啟動 393
14.3.1 基礎(chǔ)環(huán)境準(zhǔn)備及微服務(wù)組件安裝和配置 394
14.3.2 下載微服務(wù)架構(gòu)實戰(zhàn)項目的項目源碼 394
14.3.3 微服務(wù)架構(gòu)實戰(zhàn)項目的目錄結(jié)構(gòu) 395
14.3.4 啟動并驗證微服務(wù)實例 399
14.4 微服務(wù)架構(gòu)實戰(zhàn)項目的功能演示 408
14.4.1 商城用戶的注冊與登錄功能演示 408
14.4.2 把商品添加至購物車的功能演示 411
14.4.3 下單流程演示 415
14.4.4 后臺管理系統(tǒng)的部分功能演示 419
14.5 微服務(wù)架構(gòu)實戰(zhàn)項目開發(fā)過程 424
14.6 微服務(wù)架構(gòu)實戰(zhàn)項目中接口的參數(shù)處理及統(tǒng)一結(jié)果響應(yīng) 425
14.7 微服務(wù)架構(gòu)實戰(zhàn)項目打包和部署的注意事項 427