Spring Cloud Alibaba大型微服務架構項目實戰(下冊)

十三

相關主題

商品描述

本書重在引導讀者體驗真實的項目開發,圍繞Spring Cloud Alibaba技術棧全面展開,兼顧相關技術的知識拓展,由淺入深,步步為營,對一個單體API項目進行拆解和微服務化,並從零到一落地一個功能完整、流程完善的微服務項目。本書的目標是讓讀者擁有完整且高質量的學習體驗,遠離“Hello World”項目,為技術深度的挖掘和薪水、職位的提升提供保障。本書分為13章。第1章主要介紹大型微服務架構實戰項目,包括它的主要功能模塊、從單體模式到前後端分離模式再到微服務架構模式的開發歷程、微服務項目改造前的拆分思路、微服務架構實戰項目的啟動等註意事項。第2章至第8章主要介紹微服務架構項目的開發過程,介紹每個開發步驟、每個微服務模塊的編碼過程、每個微服務組件的整合,主要涉及的微服務組件是Nacos、OpenFeign和Spring Cloud LoadBalancer。第9章至第13章對實戰的微服務架構項目進行補充,將Spring Cloud Gateway、Sentinel、Seata、Spring Cloud Sleuth、Zipkin等微服務組件整合到實戰項目中,並對過程中遇到的問題進行復盤及處理。本書實戰項目整合熱門的微服務架構組件,手把手地教讀者如何在實戰中運用這些知識點,讓讀者掌握高階的使用技巧,並且能夠將其運用到實際生產項目中。本書的內容豐富,案例通俗易懂,幾乎涵蓋了目前Spring Cloud的全部熱門組件,特別適合想要瞭解Spring Cloud熱門組件及想搭建微服務系統的讀者閱讀。

目錄大綱

第1章 大型微服務架構項目設計與實戰 1
1.1 微服務架構實戰項目詳解 1
1.1.1 實戰項目介紹 2
1.1.2 新蜂商城項目的開源歷程 3
1.1.3 新蜂商城項目的功能及數據庫設計 4
1.2 從單體項目到微服務架構項目的拆分思路 6
1.3 微服務架構實戰項目源代碼獲取和項目啟動 8
1.3.1 基礎環境準備及微服務組件安裝和配置 8
1.3.2 下載微服務架構實戰項目的項目源代碼 8
1.3.3 微服務架構實戰項目的目錄結構講解 10
1.3.4 啟動並驗證微服務實例 13
1.4 微服務架構實戰項目的功能演示 21
1.4.1 商城用戶的註冊與登錄演示 21
1.4.2 把商品添加到購物車的功能演示 25
1.4.3 下單流程演示 28
1.4.4 後台管理系統的部分功能演示 32
1.5 微服務架構實戰項目中接口的參數處理及統一結果響應 38
1.6 微服務架構實戰項目打包和部署的註意事項 41
第2章 實戰項目基礎構建及公共模塊引入 48
2.1 編碼前的準備 48
2.2 搭建項目骨架 49
2.2.1 構建項目並整理依賴關系 49
2.2.2 編寫測試代碼 54
2.3 用戶微服務編碼 58
2.3.1 引入業務依賴 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 用戶登錄狀態 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 鑒權的全局過濾器編碼實現 89
3.5.3 功能測試 91

第4章 商品微服務編碼實踐及功能講解 95
4.1 商品微服務模塊介紹 95
4.1.1 商品分類管理模塊介紹 95
4.1.2 商品管理模塊介紹 99
4.2 創建商品微服務編碼 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:循環依賴 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 創建推薦微服務編碼 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 創建商城端網關newbee-mall-cloud-gateway-mall 164
6.2.2 商城端網關功能測試 168
6.3 商城首頁數據的接口實現 170
6.3.1 商城首頁的排版設計 171
6.3.2 首頁接口的響應結果設計 172
6.3.3 業務層代碼的實現 174
6.3.4 調用商品微服務進行數據的查詢與封裝 175
6.3.5 首頁接口控制層代碼的實現 177
6.3.6 首頁接口網關配置 179
6.4 商城分類頁面的接口實現 180
6.4.1 分類頁面的接口響應數據 180
6.4.2 業務層代碼的實現 182
6.4.3 分類頁面數據接口控制層代碼的實現 185
6.4.4 分類接口網關配置 187
6.5 商品列表和商品詳情頁面的接口實現 187
6.5.1 接口傳參解析及返回字段定義 188
6.5.2 業務層代碼的實現 191
6.5.3 控制層代碼的實現 194
6.5.4 商品接口網關配置 197
6.6 商城端部分接口的功能測試 198
6.6.1 獲取首頁數據的接口測試 198
6.6.2 獲取分類頁面的數據接口測試 201

第7章 購物車微服務編碼實踐及功能講解 205
7.1 購物車微服務主要功能介紹 205
7.1.1 購物車模塊介紹 205
7.1.2 購物車模塊表結構設計 206
7.2 創建購物車微服務模塊 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 訂單處理流程及訂單狀態的介紹 239
8.2 創建訂單微服務模塊 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的實現思路 260
9.3 網關層聚合Swagger編碼 263
第10章 微服務架構實戰項目中整合Seata 268
10.1 實戰項目中整合Seata編碼實踐 268
10.2 “分支事務不回滾”問題的復盤 271
10.2.1 發現問題 271
10.2.2 嘗試解決問題 271
10.2.3 分析問題產生的原因 272
10.2.4 查看源代碼並確定問題所在 273
10.2.5 解決問題 275
第11章 微服務架構實戰項目中整合Sentinel 278
11.1 實戰項目中整合Sentinel編碼實踐 278
11.2 “Sentinel控制台頁面中的微服務數據空白”問題的處理 280
11.2.1 錯誤的解決思路 280
11.2.2 正確的解決思路 282
第12章 微服務架構實戰項目中整合Seluth、Zipkin 291
12.1 整合Spring Cloud Sleuth編碼實踐 291
12.2 在全局異常處理類中增加日誌 305
12.3 整合Zipkin實踐 307
第13章 微服務架構實戰項目中整合ELK日誌中心 311
13.1 微服務架構項目中的日誌輸出配置 311
13.2 通過Kibana查詢日誌 314
13.2.1 查看日誌 314
13.2.2 日誌定時刷新 315
13.2.3 常用的日誌搜索條件 316
13.2.4 根據traceId搜索日誌 317