Spring Cloud Alibaba大型微服務架構項目實戰(zhàn)(下冊)
定 價:99 元
- 作者:十三
- 出版時間:2024/9/1
- ISBN:9787121486630
- 出 版 社:電子工業(yè)出版社
- 中圖法分類:TP368.5
- 頁碼:332
- 紙張:
- 版次:01
- 開本:16開
本書重在引導讀者體驗真實的項目開發(fā),圍繞Spring Cloud Alibaba技術棧全面展開,兼顧相關技術的知識拓展,由淺入深,步步為營,對一個單體API項目進行拆解和微服務化,并從零到一落地一個功能完整、流程完善的微服務項目。本書的目標是讓讀者擁有完整且高質量的學習體驗,遠離“Hello World”項目,為技術深度的挖掘和薪水、職位的提升提供保障。本書分為13章。第1章主要介紹大型微服務架構實戰(zhàn)項目,包括它的主要功能模塊、從單體模式到前后端分離模式再到微服務架構模式的開發(fā)歷程、微服務項目改造前的拆分思路、微服務架構實戰(zhàn)項目的啟動等注意事項。第2章至第8章主要介紹微服務架構項目的開發(fā)過程,介紹每個開發(fā)步驟、每個微服務模塊的編碼過程、每個微服務組件的整合,主要涉及的微服務組件是Nacos、OpenFeign和Spring Cloud LoadBalancer。第9章至第13章對實戰(zhàn)的微服務架構項目進行補充,將Spring Cloud Gateway、Sentinel、Seata、Spring Cloud Sleuth、Zipkin等微服務組件整合到實戰(zhàn)項目中,并對過程中遇到的問題進行復盤及處理。本書實戰(zhàn)項目整合熱門的微服務架構組件,手把手地教讀者如何在實戰(zhàn)中運用這些知識點,讓讀者掌握高階的使用技巧,并且能夠將其運用到實際生產項目中。本書的內容豐富,案例通俗易懂,幾乎涵蓋了目前Spring Cloud的全部熱門組件,特別適合想要了解Spring Cloud熱門組件及想搭建微服務系統(tǒng)的讀者閱讀。
韓帥,筆名十三,企業(yè)技術主管、CSDN博客專家、視頻講師。畢業(yè)于安徽省巢湖學院,具有多年一線開發(fā)經驗,歷任高級開發(fā)工程師、產品線后端負責人、技術部門主管等職位。熟練使用Java、SQL、Spring Boot、Vue等計算機語言和開發(fā)框架,有非常豐富的開發(fā)經驗,同時也是開源項目的愛好者和貢獻者。
第1章 大型微服務架構項目設計與實戰(zhàn) 1
1.1 微服務架構實戰(zhàn)項目詳解 1
1.1.1 實戰(zhàn)項目介紹 2
1.1.2 新蜂商城項目的開源歷程 3
1.1.3 新蜂商城項目的功能及數(shù)據(jù)庫設計 4
1.2 從單體項目到微服務架構項目的拆分思路 6
1.3 微服務架構實戰(zhàn)項目源代碼獲取和項目啟動 8
1.3.1 基礎環(huán)境準備及微服務組件安裝和配置 8
1.3.2 下載微服務架構實戰(zhàn)項目的項目源代碼 8
1.3.3 微服務架構實戰(zhàn)項目的目錄結構講解 10
1.3.4 啟動并驗證微服務實例 13
1.4 微服務架構實戰(zhàn)項目的功能演示 21
1.4.1 商城用戶的注冊與登錄演示 21
1.4.2 把商品添加到購物車的功能演示 25
1.4.3 下單流程演示 28
1.4.4 后臺管理系統(tǒng)的部分功能演示 32
1.5 微服務架構實戰(zhàn)項目中接口的參數(shù)處理及統(tǒng)一結果響應 38
1.6 微服務架構實戰(zhàn)項目打包和部署的注意事項 41
第2章 實戰(zhàn)項目基礎構建及公共模塊引入 48
2.1 編碼前的準備 48
2.2 搭建項目骨架 49
2.2.1 構建項目并整理依賴關系 49
2.2.2 編寫測試代碼 54
2.3 用戶微服務編碼 58
2.3.1 引入業(yè)務依賴 58
2.3.2 用戶模塊中的接口改造 60
2.3.3 用戶微服務改造過程中遇到的問題總結 62
2.4 引入公共模塊 64
2.5 用戶微服務模塊改造 66
2.6 OpenFeign編碼暴露遠程接口 71
2.7 遠程調用Feign包應該如何設置 72
第3章 用戶微服務編碼實踐及功能講解 74
3.1 登錄流程介紹 74
3.1.1 什么是登錄 74
3.1.2 用戶登錄狀態(tài) 75
3.1.3 登錄流程設計 75
3.2 登錄功能源代碼介紹 78
3.3 token值處理及鑒權源代碼介紹 80
3.4 用戶微服務代碼改造 83
3.4.1 引入Redis組件進行鑒權改造 83
3.4.2 用戶微服務中登錄代碼及鑒權代碼修改 86
3.5 網關層鑒權 88
3.5.1 在網關層引入Redis 88
3.5.2 鑒權的全局過濾器編碼實現(xiàn) 89
3.5.3 功能測試 91
第4章 商品微服務編碼實踐及功能講解 95
4.1 商品微服務模塊介紹 95
4.1.1 商品分類管理模塊介紹 95
4.1.2 商品管理模塊介紹 99
4.2 創(chuàng)建商品微服務編碼 103
4.3 商品微服務與用戶微服務通信 108
4.3.1 為什么需要調用用戶中心服務 109
4.3.2 商品微服務調用用戶中心編碼實踐 110
4.3.3 功能測試 113
4.4 商品微服務編碼 117
4.4.1 商品微服務代碼改造 117
4.4.2 OpenFeign編碼暴露遠程接口 120
4.4.3 功能測試 121
4.5 改造過程中遇到的問題總結 124
4.5.1 問題1:循環(huán)依賴 124
4.5.2 問題2:缺少loadbalancer依賴 125
第5章 推薦微服務編碼實踐及功能講解 126
5.1 推薦微服務主要功能模塊介紹 126
5.1.1 輪播圖管理模塊介紹 126
5.1.2 商品推薦管理模塊介紹 129
5.1.3 表結構設計 130
5.2 創(chuàng)建推薦微服務編碼 133
5.3 推薦微服務編碼 139
5.3.1 推薦微服務調用用戶中心編碼實踐 139
5.3.2 推薦微服務編碼 141
5.3.3 推薦微服務遠程調用商品微服務編碼實踐 144
5.3.4 功能測試 147
第6章 用戶微服務及商品微服務功能完善 151
6.1 增加商城用戶的相關功能 151
6.1.1 商城用戶模塊介紹 151
6.1.2 商城用戶功能模塊編碼 152
6.1.3 商城用戶模塊代碼完善 154
6.1.4 OpenFeign編碼暴露遠程接口 158
6.1.5 商城用戶鑒權功能測試 160
6.2 新增商城端網關模塊 164
6.2.1 創(chuàng)建商城端網關newbee-mall-cloud-gateway-mall 164
6.2.2 商城端網關功能測試 168
6.3 商城首頁數(shù)據(jù)的接口實現(xiàn) 170
6.3.1 商城首頁的排版設計 171
6.3.2 首頁接口的響應結果設計 172
6.3.3 業(yè)務層代碼的實現(xiàn) 174
6.3.4 調用商品微服務進行數(shù)據(jù)的查詢與封裝 175
6.3.5 首頁接口控制層代碼的實現(xiàn) 177
6.3.6 首頁接口網關配置 179
6.4 商城分類頁面的接口實現(xiàn) 180
6.4.1 分類頁面的接口響應數(shù)據(jù) 180
6.4.2 業(yè)務層代碼的實現(xiàn) 182
6.4.3 分類頁面數(shù)據(jù)接口控制層代碼的實現(xiàn) 185
6.4.4 分類接口網關配置 187
6.5 商品列表和商品詳情頁面的接口實現(xiàn) 187
6.5.1 接口傳參解析及返回字段定義 188
6.5.2 業(yè)務層代碼的實現(xiàn) 191
6.5.3 控制層代碼的實現(xiàn) 194
6.5.4 商品接口網關配置 197
6.6 商城端部分接口的功能測試 198
6.6.1 獲取首頁數(shù)據(jù)的接口測試 198
6.6.2 獲取分類頁面的數(shù)據(jù)接口測試 201
第7章 購物車微服務編碼實踐及功能講解 205
7.1 購物車微服務主要功能介紹 205
7.1.1 購物車模塊介紹 205
7.1.2 購物車模塊表結構設計 206
7.2 創(chuàng)建購物車微服務模塊 207
7.3 遠程調用用戶微服務及其他注意事項 212
7.4 購物車微服務編碼 215
7.4.1 購物車微服務代碼改造 216
7.4.2 網關模塊配置 218
7.5 購物車微服務遠程調用商品微服務編碼實踐 219
7.6 購物車微服務功能測試 222
7.7 OpenFeign編碼暴露遠程接口 226
第8章 訂單微服務編碼實踐及功能講解 228
8.1 訂單微服務主要功能模塊介紹 228
8.1.1 訂單模塊介紹 228
8.1.2 訂單模塊的表結構設計 229
8.1.3 訂單模塊中的主要功能分析 234
8.1.4 訂單處理流程及訂單狀態(tài)的介紹 239
8.2 創(chuàng)建訂單微服務模塊 242
8.3 訂單微服務編碼 243
8.4 訂單微服務遠程調用商品微服務和購物車微服務編碼實踐 246
8.5 訂單微服務功能測試 252
8.5.1 添加收貨地址接口演示 253
8.5.2 生成訂單接口演示 255
8.5.3 訂單列表接口演示 256
第9章 Spring Cloud Gateway聚合Swagger接口 259
9.1 為什么要聚合Swagger 259
9.2 網關層聚合Swagger的實現(xiàn)思路 260
9.3 網關層聚合Swagger編碼 263
第10章 微服務架構實戰(zhàn)項目中整合Seata 268
10.1 實戰(zhàn)項目中整合Seata編碼實踐 268
10.2 “分支事務不回滾”問題的復盤 271
10.2.1 發(fā)現(xiàn)問題 271
10.2.2 嘗試解決問題 271
10.2.3 分析問題產生的原因 272
10.2.4 查看源代碼并確定問題所在 273
10.2.5 解決問題 275
第11章 微服務架構實戰(zhàn)項目中整合Sentinel 278
11.1 實戰(zhàn)項目中整合Sentinel編碼實踐 278
11.2 “Sentinel控制臺頁面中的微服務數(shù)據(jù)空白”問題的處理 280
11.2.1 錯誤的解決思路 280
11.2.2 正確的解決思路 282
第12章 微服務架構實戰(zhàn)項目中整合Seluth、Zipkin 291
12.1 整合Spring Cloud Sleuth編碼實踐 291
12.2 在全局異常處理類中增加日志 305
12.3 整合Zipkin實踐 307
第13章 微服務架構實戰(zhàn)項目中整合ELK日志中心 311
13.1 微服務架構項目中的日志輸出配置 311
13.2 通過Kibana查詢日志 314
13.2.1 查看日志 314
13.2.2 日志定時刷新 315
13.2.3 常用的日志搜索條件 316
13.2.4 根據(jù)traceId搜索日志 317