《深入理解Spring Cloud与微服务构建》PDF下载

  • 购买积分:11 如何计算积分?
  • 作  者:方志朋著
  • 出 版 社:北京:人民邮电出版社
  • 出版年份:2018
  • ISBN:9787115475220
  • 页数:264 页
图书介绍:本书全面讲解了Spring Cloud构建微服务架构相关知识,包含基本的Spring Cloud 的各大组件,由浅入深,并介绍了Spring Cloud的开发工具、构建工具、和基础框架,结合简单实例帮助读者理解巩固。同时本书还探讨了微服务的任务调度和全局统一,以及容器技术Docker。本书最后将有一个综合案例作为总结和进阶应用。

第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服务的容错 17

2.1.4服务网关 18

2.1.5服务配置的统一管理 20

2.1.6服务链路追踪 20

2.2 Spring Cloud 21

2.2.1简介 21

2.2.2常用组件 21

2.2.3项目一览表 23

2.3 Dubbo简介 24

2.4 Spring Cloud与Dubbo比较 25

2.5 Kubemetes简介 26

2.6 Spring Could与Kubemetes比较 27

2.7总结 29

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

3.1 JDK的安装 30

3.1.1 JDK的下载和安装 30

3.1.2环境变量的配置 30

3.2 IDEA的安装 31

3.2.1 IDEA的下载 31

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

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

3.3构建工具Maven的使用 35

3.3.1 Maven简介 35

3.3.2 Maven的安装 35

3.3.3 Maven的核心概念 37

3.3.4编写Pom文件 37

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

3.3.6常用的Maven命令 40

第4章 开发框架Spring Boot 43

4.1 Spring Boot简介 43

4.1.1 Spring Boot的特点 43

4.1.2 Spring Boot的优点 44

4.2用IDEA构建Spring Boot工程 44

4.2.1项目结构 44

4.2.2在Spring Boot工程中构建Web 45

4.2.3 Spring Boot的测试 46

4.3 Spring Boot配置文件详解 46

4.3.1自定义属性 47

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

4.3.3自定义配置文件 49

4.3.4多个环境的配置文件 50

4.4运行状态监控Actuator 50

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

4.4.2查看运行程序的Bean 53

4.4.3使用 Actuator关闭应用程序 55

4.4.4使用shell连接Actuator 56

4.5 Spring Boot整合JPA 57

4.6 Spring Boot整合Redis 60

4.6.1 Redis简介 60

4.6.2 Redis的安装 60

4.6.3在Spring Boot中使用Redis 60

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

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

5.1 Eureka简介 66

5.1.1什么是Eureka 66

5.1.2为什么选择Eureka 66

5.1.3 Eureka的基本架构 67

5.2编写Eureka Server 67

5.3编写Eureka Client 70

5.4源码解析Eureka 73

5.4.1 Eureka的一些概念 73

5.4.2 Eureka的高可用架构 74

5.4.3 Register服务注册 74

5.4.4 Renew服务续约 78

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

5.4.6 Eureka的自我保护模式 80

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

5.6总结 83

第6章 负载均衡Ribbon 84

6.1 RestTemplate简介 84

6.2 Ribbon简介 85

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

6.4 LoadBalancerClient简介 88

6.5源码解析Ribbon 90

第7章 声明式调用Feign 101

7.1写一个Feign客户端 101

7.2 FeignClient详解 105

7.3 FeignClient的配置 106

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

7.5在Feign中使用HttpClient和OkHttp 110

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

7.7总结 114

第8章 熔断器Hystrix 115

8.1什么是Hystrix 115

8.2 Hystrix解决了什么问题 115

8.3 Hystrix的设计原则 117

8.4 Hystrix的工作机制 117

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

8.6在Feign 上使用熔断器 119

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

8.7.1在RestTemplate中使用Hystrix Dashboard 120

8.7.2在Feign中使用 Hystrix Dashboard 123

8.8使用Turbine聚合监控 124

第9章 路由网关Spring Cloud Zuul 126

9.1为什么需要Zuul 126

9.2 Zuul的工作原理 126

9.3案例实战 128

9.3.1搭建Zuul服务 128

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

9.3.3在Zuul上配置熔断器 132

9.3.4在Zuul中使用过滤器 133

9.3.5 Zuul的常见使用方式 135

第10章 配置中心Spring Cloud Config 137

10.1 Confiig Server从本地读取配置文件 137

10.1.1构建Confiig Server 137

10.1.2构建Confiig Client 138

10.2 Confiig Server从远程Git仓库读取配置文件 140

10.3构建高可用的Confiig Server 141

10.3.1构建Eureka Server 141

10.3.2改造Confiig Server 142

10.3.3改造Confiig Client 143

10.4使用Spring Cloud Bus刷新配置 144

第11章 服务链路追踪Spring Cloud Sleuth 147

11.1为什么需要Spring Cloud Sleuth 147

11.2基本术语 147

11.3案例讲解 148

11.3.1构建Zipkin Server 148

11.3.2构建User Service 149

11.3.3构建Gateway Service 151

11.3.4项目演示 152

11.4在链路数据中添加自定义数据 153

11.5使用RabbitMQ传输链路数据 154

11.6在MySQL数据库中存储链路数据 155

11.6.1使用Http传输链路数据,并存储在MySQL数据库中 156

11.6.2使用RabbitMQ传输链路数据,并存储在MySQL数据库中 157

11.7在ElasticSearch中存储链路数据 158

11.8用Kibana展示链路数据 159

第12章 微服务监控Spring Boot Admin 161

12.1使用Spring Boot Admin监控SpringCloud微服务 161

12.1.1构建Admin Server 161

12.1.2构建Admin Client 163

12.2在Spring Boot Admin中集成Turbine 166

12.2.1改造Eureka Client 166

12.2.2另行构建Eureka Client 167

12.2.3构建Turbine工程 168

12.2.4在Admin Server中集成Turbine 169

12.3在Spring Boot Admin中添加安全登录界面 172

第13章 Spring Boot Security详解 174

13.1 Spring Security简介 174

13.1.1什么是Spring Security 174

13.1.2为什么选择Spring Security 174

13.1.3 Spring Security提供的安全模块 175

13.2 Spring Boot Security与Spring Security的关系 176

13.3 Spring Boot Security案例详解 176

13.3.1构建Spring Boot Security工程 176

13.3.2配置Spring Security 178

13.3.3编写相关界面 180

13.3.4 Spring Security方法级别上的保护 185

13.3.5从数据库中读取用户的认证信息 188

13.4总结 193

第14章 使用Spring Cloud OAuth2保护微服务系统 195

14.1什么是OAuth2 195

14.2如何使用Spring OAuth2 196

14.2.1 OAuth2 Provider 196

14.2.2 OAuth2 Client 200

14.3案例分析 201

14.3.1编写Eureka Server 202

14.3.2编写Uaa授权服务 202

14.3.3编写 service-hi资源服务 209

14.4总结 215

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

15.1 JWT简介 217

15.1.1什么是JWT 217

15.1.2 JWT的结构 218

15.1.3 JWT的应用场景 219

15.1.4如何使用JWT 219

15.2案例分析 219

15.2.1案例架构设计 219

15.2.2编写主Maven工程 220

15.2.3编写Eureka Server 221

15.2.4编写Uaa授权服务 222

15.2.5编写user-service资源服务 227

15.3总结 236

第16章 使用Spring Cloud构建微服务综合案例 237

16.1案例介绍 237

16.1.1工程结构 237

16.1.2使用的技术栈 238

16.1.3工程架构 238

16.1.4功能展示 240

16.2案例详解 244

16.2.1准备工作 244

16.2.2构建主Maven工程 244

16.2.3构建eureka-server工程 245

16.2.4构建confiig-server工程 246

16.2.5构建zipkin-service工程 247

16.2.6构建monitoring-service工程 248

16.2.7构建uaa-service工程 250

16.2.8构建gateway-service工程 251

16.2.9构建admin-service工程 253

16.2.10构建user-service工程 253

16.2.11构建blog-service工程 256

16.2.12构建log-service工程 256

16.3启动源码工程 260

16.4项目演示 261

16.5总结 262