Spring Cloud Alibaba 微服務框架電商平臺搭建與編程解析

胡永鋒 胡亞威 甄瑞英

  • Spring Cloud Alibaba 微服務框架電商平臺搭建與編程解析-preview-1
  • Spring Cloud Alibaba 微服務框架電商平臺搭建與編程解析-preview-2
Spring Cloud Alibaba 微服務框架電商平臺搭建與編程解析-preview-1

買這商品的人也買了...

商品描述

本書結合開源商城項目youlai-mall介紹使用Spring Cloud Alibaba開發微服務架構應用程序的方法。全書從邏輯上分為3部分。第1部分是第1章,介紹微服務架構的基本概念、主流解決方案、youlai-mall開源商城項目的基本情況,以及本書開發環境和測試環境的搭建方法等。閱讀第1部分內容可以為進一步學習Spring Cloud Alibaba的各組件編程奠定基礎。第2部分由第2~9章組成,介紹Spring Cloud Alibaba各組件的主要功能,以及在程序中使用組件搭建微服務架構的方法,包括註冊中心Nacos、服務消費者程序、網關、服務治理、認證授權中心、保護框架、消息機制和Spring Cloud Stream開發框架等。第3部分即第10章,介紹微服務應用的部署。

本書可作為普通高等本科院校相關課程的教材,也可供普通高等職業院校的師生使用,還可作為廣大互聯網應用程序開發人員的參考書。

作者簡介

胡永锋 副教授,工学、管理学双硕士,河北机电职业技术学院财会与管理工程系主任。近年来主持、参研省、市、厅级课题十余项;在国内外刊物上发表论文20余篇,作为主编、副主编出版教材5部,取得发明专利1项;在省级技能比赛中获一等奖1项,被授予“河北省技术能手”称号,在教育信息化大赛中获国家三等奖1项,省级一等奖3项;还曾获省级教学成果二等奖1项,多次获市科技进步奖、社科优秀成果奖等奖项。

目錄大綱

第 1章 微服務架構概述 1

1.1 軟件系統架構 1

1.1.1 軟件系統架構的演變 1

1.1.2 什麽是微服務架構 4

1.1.3 微服務架構的基本組件 6

1.2 主流的微服務架構解決方案 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 實例的系統架構 16

1.4.2 youlai-mall開源項目的子項目 16

1.4.3 代碼中項目層次關系的定義 17

1.4.4 實例的運行界面 18

1.5 開發環境和測試環境 18

1.5.1 開發環境 19

1.5.2 測試環境 19

第 2章 服務註冊中心Nacos 21

2.1 概述 21

2.1.1 什麽是服務註冊中心 21

2.1.2 常用的服務註冊中心 22

2.2 使用Nacos作為服務註冊中心 23

2.2.1 Nacos的作用 23

2.2.2 安裝和運行Nacos 24

2.3 註冊服務實例 27

2.3.1 開發Spring Cloud RESTful 服務 28

2.3.2 註冊到Nacos 35

2.4 youlai-mall中的服務提供者程序解析 36

2.4.1 youlai-mall中服務項目的層次結構 36

2.4.2 管理服務提供者項目 37

2.4.3 訂單服務提供者項目 45

第3章 開發服務消費者程序 47

3.1 從客戶端調用Web服務 47

3.1.1 使用Apipost工具調用Web服務 47

3.1.2 SpringBootMVCdemo項目的完善 51

3.2 服務調用的負載均衡 52

3.2.1 什麽是負載均衡 52

3.2.2 將SpringBootMVCdemo服務部署多個實例 54

3.2.3 客戶端負載均衡組件Spring Cloud Loadbalancer 57

3.2.4 OpenFeign組件 60

3.2.5 Nacos服務發現編程 62

3.3 youlai-mall中的服務消費者程序解析 65

3.3.1 管理服務消費者模塊admin-api 65

3.3.2 訂單服務消費者模塊oms-api 67

第4章 Spring Cloud Gateway 68

4.1 Spring Cloud Gateway的工作原理 68

4.1.1 Spring Cloud Gateway的關鍵概念 68

4.1.2 Spring Cloud Gateway的工作流程 69

4.1.3 HTTP請求報文的格式 69

4.2 開發簡單的網關應用 71

4.2.1 在pom.xml中定義框架版本、引用相關依賴 71

4.2.2 啟動類 71

4.2.3 配置文件application.yml 72

4.2.4 搭建網關應用的測試環境 73

4.3 Spring Cloud Gateway配置路由的方式 74

4.3.1 快捷配置 74

4.3.2 全擴展參數 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 利用全局網關過濾器實現網關白名單功能 79

4.5.3 網關過濾器工廠 82

4.6 youlai-mall中的網關子項目解析 84

4.6.1 pom.xml 85

4.6.2 配置文件 85

第5章 服務治理 88

5.1 服務治理基礎 88

5.1.1 服務治理的概念 88

5.1.2 服務治理包含的項目 88

5.2 Nacos配置中心 89

5.2.1 什麽是微服務配置中心 90

5.2.2 Nacos配置中心的相關概念 90

5.2.3 Nacos配置中心的管理頁面 90

5.2.4 Nacos配置中心的數據存儲 91

5.2.5 開發Nacos配置中心客戶端應用 92

5.2.6 在項目youlai-mall中使用Nacos作為配置中心 96

5.3 利用Spring Boot Admin實現服務監控 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 在微服務項目中集成Spring Cloud Sleuth 105

5.4.4 Zipkin的基本功能 112

5.4.5 下載和啟動Zipkin Server 114

5.4.6 開發基於微服務的Zipkin Client項目 115

第6章 搭建認證授權中心 124

6.1 微服務架構的安全機制 124

6.1.1 認證授權中心的作用和工作原理 124

6.1.2 OAuth 2.0安全協議 125

6.1.3 通過JWT實現身份驗證和鑒權 128

6.2 開發基於OAuth 2.0和JWT的認證服務 129

6.2.1 開發認證服務的流程 129

6.2.2 示例項目AuthServerDemo的架構 130

6.2.3 開發認證服務 132

6.2.4 開發微服務模塊 144

6.2.5 開發網關模塊 145

6.2.6 測試實例的效果 152

6.3 youlai-mall項目中的認證中心解析 154

6.3.1 模塊youlai-auth 154

6.3.2 模塊youlai-gateway中與認證有關的代碼 159

第7章 服務保護框架Sentinel 165

7.1 Sentinel概述 165

7.1.1 Sentinel的特性 165

7.1.2 Sentinel的生態環境 166

7.1.3 Sentinel的工作原理 167

7.2 搭建Sentinel環境 170

7.2.1 搭建Sentinel服務端環境 170

7.2.2 開發Sentinel客戶端應用 172

7.3 保護微服務的主要方案和基本方法 174

7.3.1 保護微服務的方案 174

7.3.2 保護微服務的基本流程 175

7.3.3 定義資源 175

7.3.4 定義規則 179

7.4 流量控制機制 181

7.4.1 在Sentinel控制臺中定義流控規則 181

7.4.2 在代碼中定義流控規則 183

7.4.3 測試應用流控規則的效果 183

7.5 服務熔斷機制 190

7.5.1 在Sentinel控制臺中定義熔斷規則 190

7.5.2 在代碼中定義熔斷規則 192

7.5.3 測試應用服務熔斷規則的效果 193

7.6 熱點規則 196

7.6.1 在Sentinel控制臺中定義熱點規則 196

7.6.2 在代碼中定義熱點規則 197

7.6.3 測試應用熱點規則的效果 197

7.7 授權規則 199

7.7.1 在Sentinel控制臺中定義授權規則 199

7.7.2 在接口程序中獲取訪問者的來源 200

7.7.3 測試應用授權規則的效果 200

第8章 微服務架構消息機制 204

8.1 分佈式應用程序的消息機制 204

8.1.1 消息隊列 204

8.1.2 常用的分佈式消息隊列 206

8.2 基於Redis實現分佈式消息隊列 209

8.2.1 在Ubuntu中安裝Redis 209

8.2.2 Spring Boot應用程序存取Redis中的數據 210

8.2.3 使用Redis實現消息隊列 211

8.3 RabbitMQ消息隊列 213

8.3.1 在Ubuntu中安裝RabbitMQ 213

8.3.2 在Spring Boot應用程序中集成RabbitMQ 215

8.4 RocketMQ消息隊列 218

8.4.1 在Ubuntu中安裝RocketMQ 218

8.4.2 在Spring Boot中實現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開發框架 232

9.1 Spring Cloud Stream應用模型 232

9.1.1 Spring Cloud Stream應用模型的工作原理 232

9.1.2 Binder 232

9.1.3 Spring Cloud Stream的基本概念 233

9.2 Spring Cloud Stream編程 233

9.2.1 開發消息生產者服務 234

9.2.2 開發消息消費者服務 237

9.2.3 運行實例 238

9.3 基於消息隊列實現秒殺搶購功能 239

9.3.1 電商運營的常用方法 240

9.3.2 秒殺搶購的特性和玩法 241

9.3.3 秒殺搶購應用場景解析 241

9.3.4 傳統架構的高並發瓶頸 242

9.3.5 秒殺搶購解決方案 243

9.3.6 限流算法及其實現 245

9.4 秒殺搶購實例 247

9.4.1 簡單架構設計 247

9.4.2 前置UI層 248

9.4.3 後端服務層 256

9.4.4 運行秒殺搶購實例 261

第 10章 微服務應用的部署 263

10.1 以服務方式部署和運行微服務應用 263

10.1.1 編輯服務文件 263

10.1.2 啟動和停止服務 264

10.2 以容器化方式部署和運行微服務應用 265

10.2.1 Docker概述 265

10.2.2 Docker的基本概念 266

10.2.3 Docker與虛擬機的對比 267

10.3 使用Docker實現容器化部署 267

10.3.1 搭建Docker Registry私服 268

10.3.2 使用Docker部署Spring Boot應用程序 269

10.3.3 以Docker鏡像的形式運行seckill-front應用程序 272

10.4 Docker Compose概述 273

10.4.1 Docker Compose的基本概念與特性 273

10.4.2 安裝和使用Docker Compose 275

10.5 使用Docker Compose 搭建微服務工程 276

10.5.1 使用Docker Compose運行MySQL服務容器 277

10.5.2 使用Docker Compose運行Redis服務容器 278

10.5.3 使用Docker Compose構建Nacos服務集群 279

10.5.4 使用Docker Compose運行seckill-front容器 283

10.5.5 使用Docker Compose運行seckill_backsevice容器 285