Spring Cloud Alibaba微服務(wù)框架電商平臺搭建與編程解析
定 價:89.8 元
- 作者:胡永鋒 胡亞威 甄瑞英
- 出版時間:2023/12/1
- ISBN:9787115624215
- 出 版 社:人民郵電出版社
- 中圖法分類:TP368.5
- 頁碼:287
- 紙張:
- 版次:01
- 開本:16開
本書結(jié)合開源商城項目youlai-mall介紹使用Spring Cloud Alibaba開發(fā)微服務(wù)架構(gòu)應(yīng)用程序的方法。全書從邏輯上分為3部分。第1部分是第1章,介紹微服務(wù)架構(gòu)的基本概念、主流解決方案、youlai-mall開源商城項目的基本情況,以及本書開發(fā)環(huán)境和測試環(huán)境的搭建方法等。閱讀第1部分內(nèi)容可以為進(jìn)一步學(xué)習(xí)Spring Cloud Alibaba的各組件編程奠定基礎(chǔ)。第2部分由第2~9章組成,介紹Spring Cloud Alibaba各組件的主要功能,以及在程序中使用組件搭建微服務(wù)架構(gòu)的方法,包括注冊中心Nacos、服務(wù)消費(fèi)者程序、網(wǎng)關(guān)、服務(wù)治理、認(rèn)證授權(quán)中心、保護(hù)框架、消息機(jī)制和Spring Cloud Stream開發(fā)框架等。第3部分即第10章,介紹微服務(wù)應(yīng)用的部署。
本書可作為普通高等本科院校相關(guān)課程的教材,也可供普通高等職業(yè)院校的師生使用,還可作為廣大互聯(lián)網(wǎng)應(yīng)用程序開發(fā)人員的參考書。
1.結(jié)合開源電商項目幫助讀者理解架構(gòu)設(shè)計。
2.本書化繁為簡,精選實用的核心技術(shù),方便初學(xué)者閱讀和學(xué)習(xí)。
3.本書從入門示例、原理剖析和源碼分析等方面講解每個模塊,做到知識模塊化、任務(wù)具體化、操作實戰(zhàn)化。
4.本書作者是多年從事開發(fā)工作的工程師,具有較為豐富的開發(fā)經(jīng)驗。
胡永鋒 副教授,工學(xué)、管理學(xué)雙碩士,河北機(jī)電職業(yè)技術(shù)學(xué)院財會與管理工程系主任。近年來主持、參研省、市、廳級課題十余項;在國內(nèi)外刊物上發(fā)表論文20余篇,作為主編、副主編出版教材5部,取得發(fā)明專利1項;在省級技能比賽中獲一等獎1項,被授予“河北省技術(shù)能手”稱號,在教育信息化大賽中獲國家三等獎1項,省級一等獎3項;還曾獲省級教學(xué)成果二等獎1項,多次獲市科技進(jìn)步獎、社科優(yōu)秀成果獎等獎項。
第 1章 微服務(wù)架構(gòu)概述 1
1.1 軟件系統(tǒng)架構(gòu) 1
1.1.1 軟件系統(tǒng)架構(gòu)的演變 1
1.1.2 什么是微服務(wù)架構(gòu) 4
1.1.3 微服務(wù)架構(gòu)的基本組件 6
1.2 主流的微服務(wù)架構(gòu)解決方案 7
1.2.1 Spring Cloud 7
1.2.2 Spring Cloud Netflix 8
1.2.3 Apache ServiceComb 9
1.2.4 Spring Cloud Alibaba 9
1.3 Spring、Spring Boot和Spring Cloud 10
1.3.1 Spring框架 10
1.3.2 Spring Boot框架 11
1.3.3 Spring Boot與Spring Cloud的版本 12
1.3.4 Spring Cloud Alibaba的版本 15
1.4 youlai-mall開源商城項目簡介 15
1.4.1 實例的系統(tǒng)架構(gòu) 16
1.4.2 youlai-mall開源項目的子項目 16
1.4.3 代碼中項目層次關(guān)系的定義 17
1.4.4 實例的運(yùn)行界面 18
1.5 開發(fā)環(huán)境和測試環(huán)境 18
1.5.1 開發(fā)環(huán)境 19
1.5.2 測試環(huán)境 19
第 2章 服務(wù)注冊中心Nacos 21
2.1 概述 21
2.1.1 什么是服務(wù)注冊中心 21
2.1.2 常用的服務(wù)注冊中心 22
2.2 使用Nacos作為服務(wù)注冊中心 23
2.2.1 Nacos的作用 23
2.2.2 安裝和運(yùn)行Nacos 24
2.3 注冊服務(wù)實例 27
2.3.1 開發(fā)Spring Cloud RESTful 服務(wù) 28
2.3.2 注冊到Nacos 35
2.4 youlai-mall中的服務(wù)提供者程序解析 36
2.4.1 youlai-mall中服務(wù)項目的層次結(jié)構(gòu) 36
2.4.2 管理服務(wù)提供者項目 37
2.4.3 訂單服務(wù)提供者項目 45
第3章 開發(fā)服務(wù)消費(fèi)者程序 47
3.1 從客戶端調(diào)用Web服務(wù) 47
3.1.1 使用Apipost工具調(diào)用Web服務(wù) 47
3.1.2 SpringBootMVCdemo項目的完善 51
3.2 服務(wù)調(diào)用的負(fù)載均衡 52
3.2.1 什么是負(fù)載均衡 52
3.2.2 將SpringBootMVCdemo服務(wù)部署多個實例 54
3.2.3 客戶端負(fù)載均衡組件Spring Cloud Loadbalancer 57
3.2.4 OpenFeign組件 60
3.2.5 Nacos服務(wù)發(fā)現(xiàn)編程 62
3.3 youlai-mall中的服務(wù)消費(fèi)者程序解析 65
3.3.1 管理服務(wù)消費(fèi)者模塊admin-api 65
3.3.2 訂單服務(wù)消費(fèi)者模塊oms-api 67
第4章 Spring Cloud Gateway 68
4.1 Spring Cloud Gateway的工作原理 68
4.1.1 Spring Cloud Gateway的關(guān)鍵概念 68
4.1.2 Spring Cloud Gateway的工作流程 69
4.1.3 HTTP請求報文的格式 69
4.2 開發(fā)簡單的網(wǎng)關(guān)應(yīng)用 71
4.2.1 在pom.xml中定義框架版本、引用相關(guān)依賴 71
4.2.2 啟動類 71
4.2.3 配置文件application.yml 72
4.2.4 搭建網(wǎng)關(guān)應(yīng)用的測試環(huán)境 73
4.3 Spring Cloud Gateway配置路由的方式 74
4.3.1 快捷配置 74
4.3.2 全擴(kuò)展參數(shù) 75
4.4 路由斷言工廠 76
4.4.1 After路由斷言工廠 76
4.4.2 Before路由斷言工廠 76
4.4.3 Between路由斷言工廠 76
4.5 過濾器 77
4.5.1 全局過濾器 77
4.5.2 利用全局網(wǎng)關(guān)過濾器實現(xiàn)網(wǎng)關(guān)白名單功能 79
4.5.3 網(wǎng)關(guān)過濾器工廠 82
4.6 youlai-mall中的網(wǎng)關(guān)子項目解析 84
4.6.1 pom.xml 85
4.6.2 配置文件 85
第5章 服務(wù)治理 88
5.1 服務(wù)治理基礎(chǔ) 88
5.1.1 服務(wù)治理的概念 88
5.1.2 服務(wù)治理包含的項目 88
5.2 Nacos配置中心 89
5.2.1 什么是微服務(wù)配置中心 90
5.2.2 Nacos配置中心的相關(guān)概念 90
5.2.3 Nacos配置中心的管理頁面 90
5.2.4 Nacos配置中心的數(shù)據(jù)存儲 91
5.2.5 開發(fā)Nacos配置中心客戶端應(yīng)用 92
5.2.6 在項目youlai-mall中使用Nacos作為配置中心 96
5.3 利用Spring Boot Admin實現(xiàn)服務(wù)監(jiān)控 98
5.3.1 Spring Boot Admin的工作原理 98
5.3.2 在Spring Cloud Alibaba中集成Spring Boot Admin 99
5.4 鏈路追蹤 102
5.4.1 Spring Cloud Sleuth的基本功能 102
5.4.2 在Spring Boot項目中集成Spring Cloud Sleuth 104
5.4.3 在微服務(wù)項目中集成Spring Cloud Sleuth 105
5.4.4 Zipkin的基本功能 112
5.4.5 下載和啟動Zipkin Server 114
5.4.6 開發(fā)基于微服務(wù)的Zipkin Client項目 115
第6章 搭建認(rèn)證授權(quán)中心 124
6.1 微服務(wù)架構(gòu)的安全機(jī)制 124
6.1.1 認(rèn)證授權(quán)中心的作用和工作原理 124
6.1.2 OAuth 2.0安全協(xié)議 125
6.1.3 通過JWT實現(xiàn)身份驗證和鑒權(quán) 128
6.2 開發(fā)基于OAuth 2.0和JWT的認(rèn)證服務(wù) 129
6.2.1 開發(fā)認(rèn)證服務(wù)的流程 129
6.2.2 示例項目AuthServerDemo的架構(gòu) 130
6.2.3 開發(fā)認(rèn)證服務(wù) 132
6.2.4 開發(fā)微服務(wù)模塊 144
6.2.5 開發(fā)網(wǎng)關(guān)模塊 145
6.2.6 測試實例的效果 152
6.3 youlai-mall項目中的認(rèn)證中心解析 154
6.3.1 模塊youlai-auth 154
6.3.2 模塊youlai-gateway中與認(rèn)證有關(guān)的代碼 159
第7章 服務(wù)保護(hù)框架Sentinel 165
7.1 Sentinel概述 165
7.1.1 Sentinel的特性 165
7.1.2 Sentinel的生態(tài)環(huán)境 166
7.1.3 Sentinel的工作原理 167
7.2 搭建Sentinel環(huán)境 170
7.2.1 搭建Sentinel服務(wù)端環(huán)境 170
7.2.2 開發(fā)Sentinel客戶端應(yīng)用 172
7.3 保護(hù)微服務(wù)的主要方案和基本方法 174
7.3.1 保護(hù)微服務(wù)的方案 174
7.3.2 保護(hù)微服務(wù)的基本流程 175
7.3.3 定義資源 175
7.3.4 定義規(guī)則 179
7.4 流量控制機(jī)制 181
7.4.1 在Sentinel控制臺中定義流控規(guī)則 181
7.4.2 在代碼中定義流控規(guī)則 183
7.4.3 測試應(yīng)用流控規(guī)則的效果 183
7.5 服務(wù)熔斷機(jī)制 190
7.5.1 在Sentinel控制臺中定義熔斷規(guī)則 190
7.5.2 在代碼中定義熔斷規(guī)則 192
7.5.3 測試應(yīng)用服務(wù)熔斷規(guī)則的效果 193
7.6 熱點規(guī)則 196
7.6.1 在Sentinel控制臺中定義熱點規(guī)則 196
7.6.2 在代碼中定義熱點規(guī)則 197
7.6.3 測試應(yīng)用熱點規(guī)則的效果 197
7.7 授權(quán)規(guī)則 199
7.7.1 在Sentinel控制臺中定義授權(quán)規(guī)則 199
7.7.2 在接口程序中獲取訪問者的來源 200
7.7.3 測試應(yīng)用授權(quán)規(guī)則的效果 200
第8章 微服務(wù)架構(gòu)消息機(jī)制 204
8.1 分布式應(yīng)用程序的消息機(jī)制 204
8.1.1 消息隊列 204
8.1.2 常用的分布式消息隊列 206
8.2 基于Redis實現(xiàn)分布式消息隊列 209
8.2.1 在Ubuntu中安裝Redis 209
8.2.2 Spring Boot應(yīng)用程序存取Redis中的數(shù)據(jù) 210
8.2.3 使用Redis實現(xiàn)消息隊列 211
8.3 RabbitMQ消息隊列 213
8.3.1 在Ubuntu中安裝RabbitMQ 213
8.3.2 在Spring Boot應(yīng)用程序中集成RabbitMQ 215
8.4 RocketMQ消息隊列 218
8.4.1 在Ubuntu中安裝RocketMQ 218
8.4.2 在Spring Boot中實現(xiàn)RocketMQ消息隊列 221
8.5 Spring Cloud Bus 226
8.5.1 Spring Cloud Bus的工作原理 226
8.5.2 Spring Cloud Bus RocketMQ編程 227
第9章 Spring Cloud Stream開發(fā)框架 232
9.1 Spring Cloud Stream應(yīng)用模型 232
9.1.1 Spring Cloud Stream應(yīng)用模型的工作原理 232
9.1.2 Binder 232
9.1.3 Spring Cloud Stream的基本概念 233
9.2 Spring Cloud Stream編程 233
9.2.1 開發(fā)消息生產(chǎn)者服務(wù) 234
9.2.2 開發(fā)消息消費(fèi)者服務(wù) 237
9.2.3 運(yùn)行實例 238
9.3 基于消息隊列實現(xiàn)秒殺搶購功能 239
9.3.1 電商運(yùn)營的常用方法 240
9.3.2 秒殺搶購的特性和玩法 241
9.3.3 秒殺搶購應(yīng)用場景解析 241
9.3.4 傳統(tǒng)架構(gòu)的高并發(fā)瓶頸 242
9.3.5 秒殺搶購解決方案 243
9.3.6 限流算法及其實現(xiàn) 245
9.4 秒殺搶購實例 247
9.4.1 簡單架構(gòu)設(shè)計 247
9.4.2 前置UI層 248
9.4.3 后端服務(wù)層 256
9.4.4 運(yùn)行秒殺搶購實例 261
第 10章 微服務(wù)應(yīng)用的部署 263
10.1 以服務(wù)方式部署和運(yùn)行微服務(wù)應(yīng)用 263
10.1.1 編輯服務(wù)文件 263
10.1.2 啟動和停止服務(wù) 264
10.2 以容器化方式部署和運(yùn)行微服務(wù)應(yīng)用 265
10.2.1 Docker概述 265
10.2.2 Docker的基本概念 266
10.2.3 Docker與虛擬機(jī)的對比 267
10.3 使用Docker實現(xiàn)容器化部署 267
10.3.1 搭建Docker Registry私服 268
10.3.2 使用Docker部署Spring Boot應(yīng)用程序 269
10.3.3 以Docker鏡像的形式運(yùn)行seckill-front應(yīng)用程序 272
10.4 Docker Compose概述 273
10.4.1 Docker Compose的基本概念與特性 273
10.4.2 安裝和使用Docker Compose 275
10.5 使用Docker Compose 搭建微服務(wù)工程 276
10.5.1 使用Docker Compose運(yùn)行MySQL服務(wù)容器 277
10.5.2 使用Docker Compose運(yùn)行Redis服務(wù)容器 278
10.5.3 使用Docker Compose構(gòu)建Nacos服務(wù)集群 279
10.5.4 使用Docker Compose運(yùn)行seckill-front容器 283
10.5.5 使用Docker Compose運(yùn)行seckill_backsevice容器 285