书籍详情
Spring Boot+Spring Cloud+Docker微服务架构开发实战
作者:李晓黎 著
出版社:人民邮电出版社
出版时间:2021-12-01
ISBN:9787115576590
定价:¥69.80
购买这本书可以去
内容简介
Spring Boot + Spring Cloud + Docker是目前国内相关领域工程人员搭建微服务架构的主要解决方案之一,它基于的是流行的Java开发框架——Spring,现已成为微服务架构的优选技术方案。本书通过大量案例介绍使用Spring Boot + Spring Cloud + Docker开发微服务架构(应用程序)的方法,包括开发服务注册中心程序、服务提供者程序、服务消费者程序、认证服务、API网关等组件,进而搭建完整的微服务架构。为了便于初学者学习和理解相关内容,编者大量使用流程图和架构图对问题进行描述和讲解;同时,精选“抢购”案例,使读者直观地了解微服务架构在实际应用程序开发工作中的应用,提升读者的实战技能。本书可作为高等院校相关课程的教材,也可作为广大互联网应用程序开发人员的参考书。
作者简介
李晓黎:1998年毕业于吉林大学计算机系,硕士,具有中国投资银行、国家开发银行、中信实业银行等多家银行从业经历,多年参与银行信息化建设和网银平台开发工作,积累了深厚的全栈技术和丰富的实战开发经验,自2006年以来10多年间带领所组建的开发团队,从事网络管理软件、企业ERP系统和电商平台的开发与建设,对开发模式、开发团队组织管理和系统架构设计有着深入的理解和丰富的实战经验。在带领技术团队的过程中积累了丰富的专业技术与培训经验。
目录
章名目录:
第 1章 微服务架构概述
第 2章 Spring Boot和Spring Cloud编程基础
第3章 服务注册中心程序开发
第4章 服务提供者程序开发
第5章 服务消费者程序开发
第6章 认证服务开发
第7章 微服务的容错保护机制
第8章 API网关
第9章 微服务配置中心
第 10章 微服务架构的消息机制
第 11章 利用Docker容器化部署微服务应用
详细目录:
第 1章 微服务架构概述
1.1 软件系统架构 01
1.1.1 计算机硬件发展对软件系统架构的影响 01
1.1.2 软件系统架构的演进 03
1.2 主流微服务架构解决方案 08
1.3 开发环境和测试环境 10
1.3.1 开发环境 11
1.3.2 测试环境 14
本章小结 25
习题1
第 2章 Spring Boot和Spring Cloud编程基础
2.1 Spring框架 27
2.1.1 Spring框架的体系结构 27
2.1.2 一个简单的Maven项目案例 29
2.1.3 IoC容器 32
2.1.4 注解 36
2.2 Spring Boot编程基础 41
2.2.1 Spring与Spring Boot的关系 41
2.2.2 开发一个简单的Spring Boot应用程序 41
2.2.3 基于Spring Boot开发MVC Web应用程序 45
2.2.4 利用Thymeleaf模板引擎实现动态页面 50
2.2.5 记录日志 54
2.2.6 通过MyBatis访问MySQL数据库 57
2.2.7 以Jar包形式运行Spring Boot应用程序 64
2.3 Spring Cloud概述 65
2.3.1 Spring Cloud家族的成员 65
2.3.2 Spring Cloud与Spring Boot的 关系 67
2.3.3 Spring Boot与Spring Cloud的 版本 67
本章小结 69
习题2
第3章 服务注册中心程序开发
3.1 Spring Cloud Eureka的服务注册机制 71
3.2 开发基于Eureka的服务注册中心程序 72
3.2.1 本章案例项目 72
3.2.2 启动类 73
3.2.3 Eureka服务注册中心的主页 73
3.2.4 配置文件 75
3.2.5 Eureka的高可用性 78
3.2.6 部署Eureka服务注册中心 78
3.2.7 以服务形式运行Eureka Server 82
本章小结 84
习题3
第4章 服务提供者程序开发
4.1 开发基于RESTful架构的Web服务 86
4.1.1 RESTful架构概述 86
4.1.2 开发RESTful服务 87
4.1.3 实现POST方法 88
4.1.4 实现PUT方法 88
4.1.5 实现DELETE方法 89
4.1.6 以JSON格式传递数据 89
4.2 开发Spring Cloud资源服务 91
4.2.1 注册到Eureka Server 91
4.2.2 案例:开发用户系统服务 91
4.2.3 使用Postman测试服务提供者程序 99
本章小结 104
习题4
第5章 服务消费者程序开发
5.1 准备服务提供者实例环境 105
5.1.1 对User服务进行适当的改造 105
5.1.2 为User服务部署多个实例 106
5.2 Spring Cloud Ribbon 107
5.2.1 负载均衡 107
5.2.2 Spring Cloud Ribbon编程基础 109
5.3 Spring Cloud Feign 113
5.3.1 添加Feign依赖 113
5.3.2 项目的启动类 114
5.3.3 @FeignClient注解 114
本章小结 116
习题5
第6章 认证服务开发
6.1 微服务架构的安全认证 118
6.1.1 认证服务器的作用 118
6.1.2 OAuth 2.0概述 119
6.2 开发基于OAuth 2.0的认证服务 122
6.2.1 与安全认证有关的数据库表 122
6.2.2 认证服务项目 127
6.2.3 启动类 129
6.2.4 MyBatis配置 129
6.2.5 用户管理的实现 130
6.2.6 安全配置类 132
6.2.7 部署认证服务 135
6.2.8 使用Postman获取access token 136
6.3 服务提供者程序的安全机制 137
6.3.1 服务提供者程序安全机制的工作原理 137
6.3.2 服务提供者程序的启动类 138
6.3.3 资源服务配置类 138
6.4 在应用程序中获取access token 140
6.4.1 在程序中以POST方法调用接口 140
6.4.2 在POST请求包头中指定Basic Auth信息 141
6.4.3 在POST请求包中指定grant_type和scope参数 141
6.4.4 从认证服务获取access token的案例 142
本章小结 144
习题6
第7章 微服务的容错保护机制
7.1 Spring Cloud Hystrix概述 146
7.1.1 熔断器的工作原理 146
7.1.2 Spring Cloud Hystrix的工作原理 147
7.2 准备服务提供者实例环境 148
7.2.1 对User服务进行适当的改造 148
7.2.2 为User服务部署多个实例 149
7.3 Spring Cloud Hystrix编程 149
7.3.1 在项目中启用Hystrix组件 149
7.3.2 在Ribbon中应用Hystrix 150
7.3.3 在Feign中应用Hystrix 153
本章小结 155
习题7
第8章 API网关
8.1 Spring Cloud Zuul概述 157
8.2 Spring Cloud Zuul编程 158
8.2.1 在项目中启用Zuul组件 158
8.2.2 在application.yml中配置Zuul 158
8.2.3 Zuul过滤器 159
8.2.4 通过Zuul服务器调用服务 162
8.2.5 设置Zuul网关的白名单 164
8.2.6 记录访问日志 168
8.3 应用程序通过API网关调用服务接口 171
8.3.1 在应用程序中以GET方式调用接口 171
8.3.2 在应用程序中以POST方式调用接口 174
本章小结 179
习题8
第9章 微服务配置中心
9.1 Spring Cloud Config概述 180
9.2 Git基础 181
9.2.1 Git的工作流程 181
9.2.2 注册GitHub账号 182
9.2.3 创建GitHub仓库 182
9.2.4 在STS中上传代码至GitHub仓库 182
9.3 开发配置中心的服务器 185
9.3.1 在项目中启用Spring CloudConfig Server组件 185
9.3.2 共享Config Server的本地配置文件 186
9.3.3 使用Git管理配置文件 188
9.3.4 部署ConfigServerGit项目 190
9.4 开发配置中心的客户端 191
9.4.1 pom依赖和启动类 191
9.4.2 配置中心客户端程序的配置文件 192
9.4.3 配置中心的客户端程序案例 193
本章小结 195
习题9
第 10章 微服务架构的消息机制
10.1 应用程序的消息机制 196
10.1.1 单机应用程序的消息机制 196
10.1.2 分布式应用程序的消息 机制 197
10.1.3 基于Redis实现分布式消息 队列 199
10.1.4 Spring Boot集成RabbitMQ 消息队列 204
10.2 Spring Cloud Bus 213
10.2.1 Spring Cloud Bus的工作 原理 213
10.2.2 开发Spring Cloud Bus应用 程序 215
10.2.3 在配置中心中实现自动刷新 配置功能 215
10.3 通过Spring Cloud Stream收发消息 219
10.3.1 Spring Cloud Stream应用 程序模型 219
10.3.2 利用Spring Cloud Stream集成 RabbitMQ实现消息处理 220
10.4 消息队列在秒杀抢购场景中的应用 224
10.4.1 秒杀抢购应用场景解析 225
10.4.2 传统架构的高并发瓶颈 225
10.4.3 秒杀抢购解决方案 226
10.4.4 限流算法及其实现 228
10.4.5 秒杀抢购案例 230
本章小结 243
习题10
第 11章 利用Docker容器化部署微服务应用
11.1 容器化概述 244
11.1.1 Docker概述 244
11.1.2 Docker的基本概念 245
11.1.3 Docker与虚拟机的对比 246
11.2 Docker基础 247
11.2.1 在CentOS中安装Docker 247
11.2.2 使用Docker容器 249
11.2.3 搭建Docker Registry私服 253
11.2.4 使用Docker部署Spring Boot 应用程序 255
11.2.5 以Docker镜像的形式运行 Eureka服务应用程序 259
11.2.6 在Docker中使用自定义的 配置文件 260
11.2.7 修改Docker容器中的配置 文件 262
11.2.8 容器中日志的持久化 264
11.3 Docker Compose 267
11.3.1 Docker Compose的特性 267
11.3.2 在CentOS中安装Docker Compose 267
11.3.3 Docker Compose中的层次 概念 268
11.3.4 docker-compose.yml配置 文件 268
11.3.5 Docker Compose的常用 命令 270
11.3.6 通过Docker Compose 搭建 微服务项目 271
本章小结 282
习题11
第 1章 微服务架构概述
第 2章 Spring Boot和Spring Cloud编程基础
第3章 服务注册中心程序开发
第4章 服务提供者程序开发
第5章 服务消费者程序开发
第6章 认证服务开发
第7章 微服务的容错保护机制
第8章 API网关
第9章 微服务配置中心
第 10章 微服务架构的消息机制
第 11章 利用Docker容器化部署微服务应用
详细目录:
第 1章 微服务架构概述
1.1 软件系统架构 01
1.1.1 计算机硬件发展对软件系统架构的影响 01
1.1.2 软件系统架构的演进 03
1.2 主流微服务架构解决方案 08
1.3 开发环境和测试环境 10
1.3.1 开发环境 11
1.3.2 测试环境 14
本章小结 25
习题1
第 2章 Spring Boot和Spring Cloud编程基础
2.1 Spring框架 27
2.1.1 Spring框架的体系结构 27
2.1.2 一个简单的Maven项目案例 29
2.1.3 IoC容器 32
2.1.4 注解 36
2.2 Spring Boot编程基础 41
2.2.1 Spring与Spring Boot的关系 41
2.2.2 开发一个简单的Spring Boot应用程序 41
2.2.3 基于Spring Boot开发MVC Web应用程序 45
2.2.4 利用Thymeleaf模板引擎实现动态页面 50
2.2.5 记录日志 54
2.2.6 通过MyBatis访问MySQL数据库 57
2.2.7 以Jar包形式运行Spring Boot应用程序 64
2.3 Spring Cloud概述 65
2.3.1 Spring Cloud家族的成员 65
2.3.2 Spring Cloud与Spring Boot的 关系 67
2.3.3 Spring Boot与Spring Cloud的 版本 67
本章小结 69
习题2
第3章 服务注册中心程序开发
3.1 Spring Cloud Eureka的服务注册机制 71
3.2 开发基于Eureka的服务注册中心程序 72
3.2.1 本章案例项目 72
3.2.2 启动类 73
3.2.3 Eureka服务注册中心的主页 73
3.2.4 配置文件 75
3.2.5 Eureka的高可用性 78
3.2.6 部署Eureka服务注册中心 78
3.2.7 以服务形式运行Eureka Server 82
本章小结 84
习题3
第4章 服务提供者程序开发
4.1 开发基于RESTful架构的Web服务 86
4.1.1 RESTful架构概述 86
4.1.2 开发RESTful服务 87
4.1.3 实现POST方法 88
4.1.4 实现PUT方法 88
4.1.5 实现DELETE方法 89
4.1.6 以JSON格式传递数据 89
4.2 开发Spring Cloud资源服务 91
4.2.1 注册到Eureka Server 91
4.2.2 案例:开发用户系统服务 91
4.2.3 使用Postman测试服务提供者程序 99
本章小结 104
习题4
第5章 服务消费者程序开发
5.1 准备服务提供者实例环境 105
5.1.1 对User服务进行适当的改造 105
5.1.2 为User服务部署多个实例 106
5.2 Spring Cloud Ribbon 107
5.2.1 负载均衡 107
5.2.2 Spring Cloud Ribbon编程基础 109
5.3 Spring Cloud Feign 113
5.3.1 添加Feign依赖 113
5.3.2 项目的启动类 114
5.3.3 @FeignClient注解 114
本章小结 116
习题5
第6章 认证服务开发
6.1 微服务架构的安全认证 118
6.1.1 认证服务器的作用 118
6.1.2 OAuth 2.0概述 119
6.2 开发基于OAuth 2.0的认证服务 122
6.2.1 与安全认证有关的数据库表 122
6.2.2 认证服务项目 127
6.2.3 启动类 129
6.2.4 MyBatis配置 129
6.2.5 用户管理的实现 130
6.2.6 安全配置类 132
6.2.7 部署认证服务 135
6.2.8 使用Postman获取access token 136
6.3 服务提供者程序的安全机制 137
6.3.1 服务提供者程序安全机制的工作原理 137
6.3.2 服务提供者程序的启动类 138
6.3.3 资源服务配置类 138
6.4 在应用程序中获取access token 140
6.4.1 在程序中以POST方法调用接口 140
6.4.2 在POST请求包头中指定Basic Auth信息 141
6.4.3 在POST请求包中指定grant_type和scope参数 141
6.4.4 从认证服务获取access token的案例 142
本章小结 144
习题6
第7章 微服务的容错保护机制
7.1 Spring Cloud Hystrix概述 146
7.1.1 熔断器的工作原理 146
7.1.2 Spring Cloud Hystrix的工作原理 147
7.2 准备服务提供者实例环境 148
7.2.1 对User服务进行适当的改造 148
7.2.2 为User服务部署多个实例 149
7.3 Spring Cloud Hystrix编程 149
7.3.1 在项目中启用Hystrix组件 149
7.3.2 在Ribbon中应用Hystrix 150
7.3.3 在Feign中应用Hystrix 153
本章小结 155
习题7
第8章 API网关
8.1 Spring Cloud Zuul概述 157
8.2 Spring Cloud Zuul编程 158
8.2.1 在项目中启用Zuul组件 158
8.2.2 在application.yml中配置Zuul 158
8.2.3 Zuul过滤器 159
8.2.4 通过Zuul服务器调用服务 162
8.2.5 设置Zuul网关的白名单 164
8.2.6 记录访问日志 168
8.3 应用程序通过API网关调用服务接口 171
8.3.1 在应用程序中以GET方式调用接口 171
8.3.2 在应用程序中以POST方式调用接口 174
本章小结 179
习题8
第9章 微服务配置中心
9.1 Spring Cloud Config概述 180
9.2 Git基础 181
9.2.1 Git的工作流程 181
9.2.2 注册GitHub账号 182
9.2.3 创建GitHub仓库 182
9.2.4 在STS中上传代码至GitHub仓库 182
9.3 开发配置中心的服务器 185
9.3.1 在项目中启用Spring CloudConfig Server组件 185
9.3.2 共享Config Server的本地配置文件 186
9.3.3 使用Git管理配置文件 188
9.3.4 部署ConfigServerGit项目 190
9.4 开发配置中心的客户端 191
9.4.1 pom依赖和启动类 191
9.4.2 配置中心客户端程序的配置文件 192
9.4.3 配置中心的客户端程序案例 193
本章小结 195
习题9
第 10章 微服务架构的消息机制
10.1 应用程序的消息机制 196
10.1.1 单机应用程序的消息机制 196
10.1.2 分布式应用程序的消息 机制 197
10.1.3 基于Redis实现分布式消息 队列 199
10.1.4 Spring Boot集成RabbitMQ 消息队列 204
10.2 Spring Cloud Bus 213
10.2.1 Spring Cloud Bus的工作 原理 213
10.2.2 开发Spring Cloud Bus应用 程序 215
10.2.3 在配置中心中实现自动刷新 配置功能 215
10.3 通过Spring Cloud Stream收发消息 219
10.3.1 Spring Cloud Stream应用 程序模型 219
10.3.2 利用Spring Cloud Stream集成 RabbitMQ实现消息处理 220
10.4 消息队列在秒杀抢购场景中的应用 224
10.4.1 秒杀抢购应用场景解析 225
10.4.2 传统架构的高并发瓶颈 225
10.4.3 秒杀抢购解决方案 226
10.4.4 限流算法及其实现 228
10.4.5 秒杀抢购案例 230
本章小结 243
习题10
第 11章 利用Docker容器化部署微服务应用
11.1 容器化概述 244
11.1.1 Docker概述 244
11.1.2 Docker的基本概念 245
11.1.3 Docker与虚拟机的对比 246
11.2 Docker基础 247
11.2.1 在CentOS中安装Docker 247
11.2.2 使用Docker容器 249
11.2.3 搭建Docker Registry私服 253
11.2.4 使用Docker部署Spring Boot 应用程序 255
11.2.5 以Docker镜像的形式运行 Eureka服务应用程序 259
11.2.6 在Docker中使用自定义的 配置文件 260
11.2.7 修改Docker容器中的配置 文件 262
11.2.8 容器中日志的持久化 264
11.3 Docker Compose 267
11.3.1 Docker Compose的特性 267
11.3.2 在CentOS中安装Docker Compose 267
11.3.3 Docker Compose中的层次 概念 268
11.3.4 docker-compose.yml配置 文件 268
11.3.5 Docker Compose的常用 命令 270
11.3.6 通过Docker Compose 搭建 微服务项目 271
本章小结 282
习题11
猜您喜欢