书籍详情
Spring Cloud Alibaba微服务框架电商平台搭建与编程解析
作者:胡永锋 胡亚威 甄瑞英
出版社:人民邮电出版社
出版时间:2023-12-01
ISBN:9787115624215
定价:¥89.80
购买这本书可以去
内容简介
本书结合开源商城项目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
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
猜您喜欢