《深入理解Spring Cloud与微服务构建》内容简介|作者

内容简介

《深入理解Spring Cloud与微服务构建 第2版》共分为18章,全面涵盖了通过Spring Cloud构建微服务的相关知识点。第1、2章详细介绍了微服务架构和Spring Cloud。第3、4章讲解了通过Spring Cloud构建微服务的准备工作。第5~14章以案例为切入点,讲解了通过Spring Cloud构建微服务的基础组件,包括Eureka、Ribbon、Feign、Hystrix、Zuul、Gateway、Consul、Config、Sleuth、Admint等组件。第15~17章讲述了使用Spring Cloud OAuth2来保护微服务系统的相关知识。第18章用一个综合案例全面讲解了如何使用Spring Cloud构建微服务,可用于实际开发中。

作者简介:

方志朋,毕业于武汉理工大学,就职于某互联网金融公司。Spring Cloud中国社区联合发起人、CSDN博客专家,专注于分布式系统和中间件等领域的研究和开发,乐于分享,爱好开源,对技术有着强烈的追求,活跃于各大技术社区。

目 录:

第 1章 微服务简介 1

1.1 单体架构及其存在的不足 1

1.1.1 单体架构简介 1

1.1.2 单体架构存在的不足 2

1.1.3 单体架构使用服务器集群及存在的不足 2

1.2 微服务 3

1.2.1 什么是微服务 4

1.2.2 微服务的优势 8

1.3 微服务的不足 9

1.3.1 微服务的复杂度 9

1.3.2 分布式事务 9

1.3.3 服务的划分 11

1.3.4 服务的部署 11

1.4 微服务和SOA的关系 12

1.5 微服务的设计原则 12

第 2章 Spring Cloud简介 14

2.1 微服务应该具备的功能 14

2.1.1 服务的注册与发现 15

2.1.2 服务的负载均衡 15

2.1.3 服务的容错 16

2.1.4 服务网关 18

2.1.5 服务配置的统一管理 19

2.1.6 服务链路追踪 20

2.2 Spring Cloud 20

2.2.1 简介 20

2.2.2 常用组件 21

2.2.3 项目一览 22

2.3 Dubbo简介 23

2.4 Spring Cloud与Dubbo比较 24

2.5 Kubernetes简介 25

2.6 Spring Could与Kubernetes比较 27

2.7 总结 28

第3章 构建微服务的准备 29

3.1 JDK的安装 29

3.1.1 JDK的下载和安装 29

3.1.2 环境变量的配置 29

3.2 IDEA的安装 30

3.2.1 IDEA的下载 30

3.2.2 用IDEA创建一个Spring Boot工程 31

3.2.3 用IDEA启动多个Spring Boot工程实例 33

3.3 构建工具Maven的使用 34

3.3.1 Maven简介 34

3.3.2 Maven的安装 34

3.3.3 Maven的核心概念 36

3.3.4 编写Pom文件 36

3.3.5 Maven构建项目的生命周期 38

3.3.6 常用的Maven命令 39

第4章 开发框架Spring Boot 41

4.1 Spring Boot简介 41

4.1.1 Spring Boot的特点 41

4.1.2 Spring Boot的优点 42

4.2 用IDEA构建Spring Boot工程 42

4.2.1 项目结构 42

4.2.2 在Spring Boot工程中构建Web程序 43

4.2.3 Spring Boot的测试 44

4.3 Spring Boot配置文件详解 45

4.3.1 自定义属性 45

4.3.2 将配置文件的属性赋给实体类 46

4.3.3 自定义配置文件 47

4.3.4 多个环境的配置文件 48

4.4 运行状态监控Actuator 48

4.4.1 查看运行程序的健康状态 50

4.4.2 查看运行程序的Bean 51

4.4.3 使用Actuator关闭应用程序 53

4.4.4 使用shell连接Actuator 54

4.5 Spring Boot整合JPA 55

4.6 Spring Boot整合Redis 58

4.6.1 Redis简介 58

4.6.2 Redis的安装 58

4.6.3 在Spring Boot中使用Redis 58

4.7 Spring Boot整合Swagger2,搭建Restful API在线文档 60

第5章 服务注册和发现Eureka 64

5.1 Eureka简介 64

5.1.1 什么是Eureka 64

5.1.2 为什么选择Eureka 64

5.1.3 Eureka的基本架构 65

5.2 编写Eureka Server 65

5.3 编写Eureka Client 68

5.4 源码解析Eureka 71

5.4.1 Eureka的一些概念 71

5.4.2 Eureka的高可用架构 72

5.4.3 Register服务注册 72

5.4.4 Renew服务续约 76

5.4.5 为什么Eureka Client获取服务实例这么慢 77

5.4.6 Eureka 的自我保护模式 78

5.5 构建高可用的Eureka Server集群 79

5.6 总结 81

第6章 负载均衡Ribbon 82

6.1 RestTemplate简介 82

6.2 Ribbon简介 83

6.3 使用RestTemplate和Ribbon来消费服务 83

6.4 LoadBalancerClient简介 86

6.5 源码解析Ribbon 88

第7章 声明式调用Feign 99

7.1 写一个Feign客户端 99

7.2 FeignClient详解 103

7.3 FeignClient的配置 104

7.4 从源码的角度讲解Feign的工作原理 105

7.5 在Feign中使用HttpClient和OkHttp 108

7.6 Feign是如何实现负载均衡的 110

7.7 总结 112

第8章 熔断器Hystrix 113

8.1 Hystrix简介 113

8.2 Hystrix解决的问题 113

8.3 Hystrix的设计原则 115

8.4 Hystrix的工作机制 115

8.5 在RestTemplate和Ribbon上使用熔断器 116

8.6 在Feign上使用熔断器 117

8.7 使用Hystrix Dashboard监控熔断器的状态 118

8.7.1 在RestTemplate中使用Hystrix Dashboard 118

8.7.2 在Feign中使用Hystrix Dashboard 121

8.8 使用Turbine聚合监控 122

第9章 路由网关Spring Cloud Zuul 124

9.1 为什么需要Zuul 124

9.2 Zuul的工作原理 124

9.3 案例实战 126

9.3.1 搭建Zuul服务 126

9.3.2 在Zuul上配置API接口的版本号 129

9.3.3 在Zuul上配置熔断器 130

9.3.4 在Zuul中使用过滤器 131

9.3.5 Zuul的常见使用方式 133

第 10章 服务网关 135

10.1 服务网关的实现原理 135

10.2 断言工厂 136

10.2.1 After路由断言工厂 136

10.2.2 Header断言工厂 138

10.2.3 Cookie路由断言工厂 139

10.2.4 Host路由断言工厂 140

10.2.5 Method路由断言工厂 140

10.2.6 Path 路由断言工厂 141

10.2.7 Query 路由断言工厂 141

10.3 过滤器 142

10.3.1 过滤器的作用 143

10.3.2 过滤器的生命周期 144

10.3.3 网关过滤器 144

10.3.4 全局过滤器 151

10.4 限流 153

10.4.1 常见的限流算法 153

10.4.2 服务网关的限流 154

10.5 服务化 156

10.5.1 工程介绍 156

10.5.2 service-gateway工程详细介绍 157

10.6 总结 159

第 11章 服务注册和发现Consul 160

11.1 什么是Consul 160

11.1.1 基本术语 160

11.1.2 Consul的特点和功能 161

11.1.3 Consul的原理 161

11.1.4 Consul的基本架构 161

11.1.5 Consul服务注册发现流程 163

11.2 Consul与Eureka比较 163

11.3 下载和安装Consul 164

11.4 使用Spring Cloud Consul进行服务注册和发现 165

11.4.1 服务提供者consul-provider 165

11.4.2 服务消费者consul-provider 167

11.5 使用Spring Cloud Consul Config做服务配置中心 168

11.6 动态刷新配置 170

11.7 总结 171

第 12章 配置中心Spring Cloud Config 172

12.1 Config Server从本地读取配置文件 172

12.1.1 构建Config Server 172

12.1.2 构建Config Client 174

12.2 Config Server从远程Git仓库读取配置文件 175

12.3 构建高可用的Config Server 176

12.3.1 构建Eureka Server 177

12.3.2 改造Config Server 178

12.3.3 改造Config Client 178

12.4 使用Spring Cloud Bus刷新配置 180

12.5 将配置存储在MySQL数据库中 182

12.5.1 改造config-server工程 182

12.5.2 初始化数据库 183

第 13章 服务链路追踪Spring Cloud Sleuth 184

13.1 为什么需要Spring Cloud Sleuth 184

13.2 基本术语 184

13.3 案例讲解 186

13.3.1 启动Zipkin Server 187

13.3.2 构建服务提供者 187

13.3.3 构建服务消费者 189

13.3.4 项目演示 191

13.4 在链路数据中添加自定义数据 192

13.5 使用RabbitMQ 传输链路数据 192

13.6 在MySQL数据库中存储链路数据 194

13.7 在ElasticSearch中存储链路数据 195

13.8 用Kibana展示链路数据 196

第 14章 微服务监控Spring Boot Admin 198

14.1 使用Spring Boot Admin监控Spring Boot应用程序 199

14.1.1 创建Spring Boot Admin Server 199

14.1.2 创建Spring Boot Admin Client 200

14.2 使用Spring Boot Admin监控Spring Cloud微服务 202

14.2.1 构建Admin Server 202

14.2.2 构建Admin Client 204

14.3 在Spring Boot Admin中添加Security和Mail组件 205

14.3.1 Spring Boot Admin集成Security组件 206

14.3.2 Spring Boot Admin集成Mail组件 208

第 15章 Spring Boot Security详解 209

15.1 Spring Security简介 209

15.1.1 什么是Spring Security 209

15.1.2 为什么选择Spring Security 209

15.1.3 Spring Security提供的安全模块 210

15.2 Spring Boot Security与Spring Security的关系 211

15.3 Spring Boot Security案例详解 211

15.3.1 构建Spring Boot Security工程 211

15.3.2 配置Spring Security 213

15.3.3 编写相关界面 215

15.3.4 Spring Security方法级别上的保护 220

15.3.5 从数据库中读取用户的认证信息 223

15.4 总结 228

第 16章 使用Spring Cloud OAuth2保护微服务系统 230

16.1 什么是OAuth2 230

16.2 如何使用Spring OAuth2 231

16.2.1 OAuth2 Provider 231

16.2.2 OAuth2 Client 235

16.3 案例分析 236

16.3.1 编写Eureka Server 237

16.3.2 编写Uaa授权服务 237

16.3.3 编写service-hi资源服务 244

16.4 总结 250

第 17章 使用Spring Security OAuth2和JWT保护微服务系统 251

17.1 JWT简介 251

17.1.1 什么是JWT 251

17.1.2 JWT的结构 252

17.1.3 JWT的应用场景 253

17.1.4 如何使用JWT 253

17.2 案例分析 253

17.2.1 案例架构设计 253

17.2.2 编写主Maven工程 254

17.2.3 编写Eureka Server 256

17.2.4 编写Uaa授权服务 256

17.2.5 编写user-service资源服务 262

17.3 总结 270

第 18章 使用Spring Cloud构建微服务综合案例 271

18.1 案例介绍 271

18.1.1 工程结构 271

18.1.2 使用的技术栈 271

18.1.3 工程架构 272

18.1.4 功能展示 274

18.2 案例详解 277

18.2.1 准备工作 278

18.2.2 构建主Maven工程 278

18.2.3 构建eureka-server工程 279

18.2.4 构建config-server工程 280

18.2.5 构建Zipkin工程 281

18.2.6 构建monitoring-service工程 282

18.2.7 构建uaa-service工程 284

18.2.8 构建gateway-service工程 286

18.2.9 构建admin-service工程 287

18.2.10 构建user-service工程 287

18.2.11 构建blog-service工程 290

18.2.12 构建log-service工程 291

18.3 启动源码工程 294

18.4 项目演示 295

18.5 总结 296

为您推荐

《谢米尔的小潜水艇》内容简介|作者

内容简介 好的幻想小说都是成长小说,它长久不衰的魅力,在于它能帮孩子处理成长过程中必须面对的内心冲突。它是一面镜子,能照出孩子的自我;是孩子们演练内心冲突的一个舞台;是一次孩子们的自我发现之旅。 日本大幻想文学..

《高考英语高分作文字帖》内容简介|作者

内容简介书籍特色 这是一套对英文字母、单词、短语、句子、文章书法练习的字帖,根据习字者的书法水平和英语程度,由浅入深,由易到难,通过循序渐进的练习,帮助习字者快速提高书..

《魏晋唐小楷-中国历代名碑名帖精选》内容简介|作者

内容简介书籍特色 为传承和发扬传统文化,江西美术出版社北京分社推出《中国历代名碑名帖精选》系列图书,让我们从这里抵达华夏文明的深处。  书法艺术是中华文化瑰宝,古人..

《王福庵印谱-全3册》内容简介|作者

《硬笔楷书入门字帖》内容简介|作者

内容简介书籍特色 广大学生和书法爱好者书写汉字,力求规范、端正、整洁,能用钢笔熟练地书写正楷字,逐步提高书写速度,规范书写习惯。随着国家对传统文化越来越重视,写一手好的..

《李文采临王羲之圣教序碑》内容简介|作者

内容简介本书由僧人怀仁集王羲之书而成。怀仁从唐内府所藏王羲之书迹及民间王字遗墨中集《圣教序》, 历时二十四年。前人评价此碑: “天衣无缝, 胜于自运”, “逸少真迹, 咸萃其中”。由于王羲之真迹不存, 此碑是后人..

《李文采临李邕李思训碑》内容简介|作者

内容简介本书精选历代著名碑帖 (自殷商至近代) 影印出版, 纵贯中国书法史, 更加精当合理, 底本注重艺术性与版本价值相结合, 是广大读者学习书法艺术的首选法帖。碑高一丈一尺三寸六分, 宽四尺八寸五分。字共三十行,..