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