Spring Cloud Alibaba微服務(wù)框架電商平臺(tái)搭建與編程解析
定 價(jià):89.8 元
- 作者:胡永鋒 胡亞威 甄瑞英
- 出版時(shí)間:2023/12/1
- ISBN:9787115624215
- 出 版 社:人民郵電出版社
- 中圖法分類(lèi):TP368.5
- 頁(yè)碼:287
- 紙張:
- 版次:01
- 開(kāi)本:16開(kāi)
本書(shū)結(jié)合開(kāi)源商城項(xiàng)目youlai-mall介紹使用Spring Cloud Alibaba開(kāi)發(fā)微服務(wù)架構(gòu)應(yīng)用程序的方法。全書(shū)從邏輯上分為3部分。第1部分是第1章,介紹微服務(wù)架構(gòu)的基本概念、主流解決方案、youlai-mall開(kāi)源商城項(xiàng)目的基本情況,以及本書(shū)開(kāi)發(fā)環(huán)境和測(cè)試環(huán)境的搭建方法等。閱讀第1部分內(nèi)容可以為進(jìn)一步學(xué)習(xí)Spring Cloud Alibaba的各組件編程奠定基礎(chǔ)。第2部分由第2~9章組成,介紹Spring Cloud Alibaba各組件的主要功能,以及在程序中使用組件搭建微服務(wù)架構(gòu)的方法,包括注冊(cè)中心Nacos、服務(wù)消費(fèi)者程序、網(wǎng)關(guān)、服務(wù)治理、認(rèn)證授權(quán)中心、保護(hù)框架、消息機(jī)制和Spring Cloud Stream開(kāi)發(fā)框架等。第3部分即第10章,介紹微服務(wù)應(yīng)用的部署。
本書(shū)可作為普通高等本科院校相關(guān)課程的教材,也可供普通高等職業(yè)院校的師生使用,還可作為廣大互聯(lián)網(wǎng)應(yīng)用程序開(kāi)發(fā)人員的參考書(shū)。
1.結(jié)合開(kāi)源電商項(xiàng)目幫助讀者理解架構(gòu)設(shè)計(jì)。
2.本書(shū)化繁為簡(jiǎn),精選實(shí)用的核心技術(shù),方便初學(xué)者閱讀和學(xué)習(xí)。
3.本書(shū)從入門(mén)示例、原理剖析和源碼分析等方面講解每個(gè)模塊,做到知識(shí)模塊化、任務(wù)具體化、操作實(shí)戰(zhàn)化。
4.本書(shū)作者是多年從事開(kāi)發(fā)工作的工程師,具有較為豐富的開(kāi)發(fā)經(jīng)驗(yàn)。
胡永鋒 副教授,工學(xué)、管理學(xué)雙碩士,河北機(jī)電職業(yè)技術(shù)學(xué)院財(cái)會(huì)與管理工程系主任。近年來(lái)主持、參研省、市、廳級(jí)課題十余項(xiàng);在國(guó)內(nèi)外刊物上發(fā)表論文20余篇,作為主編、副主編出版教材5部,取得發(fā)明專(zhuān)利1項(xiàng);在省級(jí)技能比賽中獲一等獎(jiǎng)1項(xiàng),被授予“河北省技術(shù)能手”稱(chēng)號(hào),在教育信息化大賽中獲國(guó)家三等獎(jiǎng)1項(xiàng),省級(jí)一等獎(jiǎng)3項(xiàng);還曾獲省級(jí)教學(xué)成果二等獎(jiǎng)1項(xiàng),多次獲市科技進(jìn)步獎(jiǎng)、社科優(yōu)秀成果獎(jiǎng)等獎(jiǎng)項(xiàng)。
第 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開(kāi)源商城項(xiàng)目簡(jiǎn)介 15
1.4.1 實(shí)例的系統(tǒng)架構(gòu) 16
1.4.2 youlai-mall開(kāi)源項(xiàng)目的子項(xiàng)目 16
1.4.3 代碼中項(xiàng)目層次關(guān)系的定義 17
1.4.4 實(shí)例的運(yùn)行界面 18
1.5 開(kāi)發(fā)環(huán)境和測(cè)試環(huán)境 18
1.5.1 開(kāi)發(fā)環(huán)境 19
1.5.2 測(cè)試環(huán)境 19
第 2章 服務(wù)注冊(cè)中心Nacos 21
2.1 概述 21
2.1.1 什么是服務(wù)注冊(cè)中心 21
2.1.2 常用的服務(wù)注冊(cè)中心 22
2.2 使用Nacos作為服務(wù)注冊(cè)中心 23
2.2.1 Nacos的作用 23
2.2.2 安裝和運(yùn)行Nacos 24
2.3 注冊(cè)服務(wù)實(shí)例 27
2.3.1 開(kāi)發(fā)Spring Cloud RESTful 服務(wù) 28
2.3.2 注冊(cè)到Nacos 35
2.4 youlai-mall中的服務(wù)提供者程序解析 36
2.4.1 youlai-mall中服務(wù)項(xiàng)目的層次結(jié)構(gòu) 36
2.4.2 管理服務(wù)提供者項(xiàng)目 37
2.4.3 訂單服務(wù)提供者項(xiàng)目 45
第3章 開(kāi)發(fā)服務(wù)消費(fèi)者程序 47
3.1 從客戶(hù)端調(diào)用Web服務(wù) 47
3.1.1 使用Apipost工具調(diào)用Web服務(wù) 47
3.1.2 SpringBootMVCdemo項(xiàng)目的完善 51
3.2 服務(wù)調(diào)用的負(fù)載均衡 52
3.2.1 什么是負(fù)載均衡 52
3.2.2 將SpringBootMVCdemo服務(wù)部署多個(gè)實(shí)例 54
3.2.3 客戶(hù)端負(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請(qǐng)求報(bào)文的格式 69
4.2 開(kāi)發(fā)簡(jiǎn)單的網(wǎng)關(guān)應(yīng)用 71
4.2.1 在pom.xml中定義框架版本、引用相關(guān)依賴(lài) 71
4.2.2 啟動(dòng)類(lèi) 71
4.2.3 配置文件application.yml 72
4.2.4 搭建網(wǎng)關(guān)應(yīng)用的測(cè)試環(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 過(guò)濾器 77
4.5.1 全局過(guò)濾器 77
4.5.2 利用全局網(wǎng)關(guān)過(guò)濾器實(shí)現(xiàn)網(wǎng)關(guān)白名單功能 79
4.5.3 網(wǎng)關(guān)過(guò)濾器工廠 82
4.6 youlai-mall中的網(wǎng)關(guān)子項(xiàng)目解析 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ù)治理包含的項(xiàng)目 88
5.2 Nacos配置中心 89
5.2.1 什么是微服務(wù)配置中心 90
5.2.2 Nacos配置中心的相關(guān)概念 90
5.2.3 Nacos配置中心的管理頁(yè)面 90
5.2.4 Nacos配置中心的數(shù)據(jù)存儲(chǔ) 91
5.2.5 開(kāi)發(fā)Nacos配置中心客戶(hù)端應(yīng)用 92
5.2.6 在項(xiàng)目youlai-mall中使用Nacos作為配置中心 96
5.3 利用Spring Boot Admin實(shí)現(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項(xiàng)目中集成Spring Cloud Sleuth 104
5.4.3 在微服務(wù)項(xiàng)目中集成Spring Cloud Sleuth 105
5.4.4 Zipkin的基本功能 112
5.4.5 下載和啟動(dòng)Zipkin Server 114
5.4.6 開(kāi)發(fā)基于微服務(wù)的Zipkin Client項(xiàng)目 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 通過(guò)JWT實(shí)現(xiàn)身份驗(yàn)證和鑒權(quán) 128
6.2 開(kāi)發(fā)基于OAuth 2.0和JWT的認(rèn)證服務(wù) 129
6.2.1 開(kāi)發(fā)認(rèn)證服務(wù)的流程 129
6.2.2 示例項(xiàng)目AuthServerDemo的架構(gòu) 130
6.2.3 開(kāi)發(fā)認(rèn)證服務(wù) 132
6.2.4 開(kāi)發(fā)微服務(wù)模塊 144
6.2.5 開(kāi)發(fā)網(wǎng)關(guān)模塊 145
6.2.6 測(cè)試實(shí)例的效果 152
6.3 youlai-mall項(xiàng)目中的認(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 開(kāi)發(fā)Sentinel客戶(hù)端應(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控制臺(tái)中定義流控規(guī)則 181
7.4.2 在代碼中定義流控規(guī)則 183
7.4.3 測(cè)試應(yīng)用流控規(guī)則的效果 183
7.5 服務(wù)熔斷機(jī)制 190
7.5.1 在Sentinel控制臺(tái)中定義熔斷規(guī)則 190
7.5.2 在代碼中定義熔斷規(guī)則 192
7.5.3 測(cè)試應(yīng)用服務(wù)熔斷規(guī)則的效果 193
7.6 熱點(diǎn)規(guī)則 196
7.6.1 在Sentinel控制臺(tái)中定義熱點(diǎn)規(guī)則 196
7.6.2 在代碼中定義熱點(diǎn)規(guī)則 197
7.6.3 測(cè)試應(yīng)用熱點(diǎn)規(guī)則的效果 197
7.7 授權(quán)規(guī)則 199
7.7.1 在Sentinel控制臺(tái)中定義授權(quán)規(guī)則 199
7.7.2 在接口程序中獲取訪問(wèn)者的來(lái)源 200
7.7.3 測(cè)試應(yīng)用授權(quán)規(guī)則的效果 200
第8章 微服務(wù)架構(gòu)消息機(jī)制 204
8.1 分布式應(yīng)用程序的消息機(jī)制 204
8.1.1 消息隊(duì)列 204
8.1.2 常用的分布式消息隊(duì)列 206
8.2 基于Redis實(shí)現(xiàn)分布式消息隊(duì)列 209
8.2.1 在Ubuntu中安裝Redis 209
8.2.2 Spring Boot應(yīng)用程序存取Redis中的數(shù)據(jù) 210
8.2.3 使用Redis實(shí)現(xiàn)消息隊(duì)列 211
8.3 RabbitMQ消息隊(duì)列 213
8.3.1 在Ubuntu中安裝RabbitMQ 213
8.3.2 在Spring Boot應(yīng)用程序中集成RabbitMQ 215
8.4 RocketMQ消息隊(duì)列 218
8.4.1 在Ubuntu中安裝RocketMQ 218
8.4.2 在Spring Boot中實(shí)現(xiàn)RocketMQ消息隊(duì)列 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開(kāi)發(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 開(kāi)發(fā)消息生產(chǎn)者服務(wù) 234
9.2.2 開(kāi)發(fā)消息消費(fèi)者服務(wù) 237
9.2.3 運(yùn)行實(shí)例 238
9.3 基于消息隊(duì)列實(shí)現(xiàn)秒殺搶購(gòu)功能 239
9.3.1 電商運(yùn)營(yíng)的常用方法 240
9.3.2 秒殺搶購(gòu)的特性和玩法 241
9.3.3 秒殺搶購(gòu)應(yīng)用場(chǎng)景解析 241
9.3.4 傳統(tǒng)架構(gòu)的高并發(fā)瓶頸 242
9.3.5 秒殺搶購(gòu)解決方案 243
9.3.6 限流算法及其實(shí)現(xiàn) 245
9.4 秒殺搶購(gòu)實(shí)例 247
9.4.1 簡(jiǎn)單架構(gòu)設(shè)計(jì) 247
9.4.2 前置UI層 248
9.4.3 后端服務(wù)層 256
9.4.4 運(yùn)行秒殺搶購(gòu)實(shí)例 261
第 10章 微服務(wù)應(yīng)用的部署 263
10.1 以服務(wù)方式部署和運(yùn)行微服務(wù)應(yīng)用 263
10.1.1 編輯服務(wù)文件 263
10.1.2 啟動(dòng)和停止服務(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ī)的對(duì)比 267
10.3 使用Docker實(shí)現(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