Spring Boot+Spring Cloud+Docker微服务架构开发实战

融合丰富实战案例,帮助读者快速上手,Spring Boot+Spring Cloud+Docker微服务架构开发实战教程,配套丰富教辅资源!
分享 推荐 3 收藏 142 阅读 4.4K
李晓黎 (作者) 978-7-115-57659-0

关于本书的内容有任何问题,请联系 人邮社 王宣

资深全栈开发工程师精心打磨新品力作。
图文并茂,紧扣工程,资源丰富。
配套PPT、教案、教学大纲、实验手册、习题答案、案例源代码等教辅资源。

特别说明

1.化繁为简,精选实用的核心技术!
作为分布式系统,Spring Boot+Spring Cloud微服务架构包含很多组件,所涉及的技术对于初学者而言可以说是浩如烟海,因此,在有限的篇幅中不可能涵盖全部。本书在内容的选择、深度的把握上力求做到深入浅出、循序渐进,方便初学者阅读和学习。
2.依托图表和经典案例,帮助读者理解抽象的架构设计问题!
作为开发架构类的入门级教材,本书通过各种流程图、架构图来描述微服务架构的工作原理。本书通过介绍大量案例,为读者理解抽象概念提供了捷径。特别是第10章介绍的“秒杀抢购”案例,可以帮助读者系统地理解微服务架构的作用。
3.提供全面的配套教辅资源!
编者为使用本书的教师制作了配套的电子教案,并提供了各章习题的参考答案和11个实验的电子文档,以及“秒杀抢购”案例和大作业“迷你购物电商网站应用实例”的数据库脚本和源程序,上述资源可以通过人邮教育社区(www.ryjiaoyu.com)进行下载。

内容摘要

Spring Boot + Spring Cloud + Docker是目前国内相关领域工程人员搭建微服务架构的主要解决方案之一,它基于的是流行的Java开发框架——Spring,现已成为微服务架构的首选技术方案。
本书通过大量案例介绍使用Spring Boot + Spring Cloud + Docker开发微服务架构(应用程序)的方法,包括开发服务注册中心程序、服务提供者程序、服务消费者程序、认证服务、API网关等组件,进而搭建完整的微服务架构。为了便于初学者学习和理解相关内容,编者大量使用流程图和架构图对问题进行描述和讲解;同时,精选“秒杀抢购”经典案例,使读者直观地了解微服务架构在实际应用程序开发工作中的应用,提升读者的实战技能。
本书可作为高等院校相关课程的教材,也可作为广大互联网应用程序开发人员的参考书。

目录

章名目录:

第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

读者评论

赶紧抢沙发哦!

我要评论

作者介绍

李晓黎:
1998年毕业于吉林大学计算机系,硕士,具有中国投资银行、国家开发银行、中信实业银行等多家银行从业经历,多年参与银行信息化建设和网银平台开发工作,积累了深厚的全栈技术和丰富的实战开发经验,自2006年以来10多年间带领所组建的开发团队,从事网络管理软件、企业ERP系统和电商平台的开发与建设,对开发模式、开发团队组织管理和系统架构设计有着深入的理解和丰富的实战经验。在带领技术团队的过程中积累了丰富的专业技术与培训经验。

推荐用户

购买本书用户

相关图书

人邮微信
本地服务
教师服务
教师服务
读者服务
读者服务
返回顶部
返回顶部