《Spring Cloud与Docker微服务架构实战 第2版》PDF下载

  • 购买积分:12 如何计算积分?
  • 作  者:周立著
  • 出 版 社:北京:电子工业出版社
  • 出版年份:2018
  • ISBN:9787121340154
  • 页数:302 页
图书介绍:作为一部帮助大家实现微服务架构落地的作品,《Spring Cloud与Docker微服务架构实战》覆盖了微服务理论、微服务开发框架(Spring Cloud)以及运行平台(Docker)三大主题。全书可分为三部分,第1章对微服务架构进行了系统的介绍;第2-11章使用Spring Cloud开发框架编写了一个“电影售票系统”;第12-14章则讲解了如何将微服务应用运行在Docker之上。全书Demo驱动学习,以连贯的场景、具体的代码示例来引导读者学习相关知识,最终使用特定的技术栈实现微服务架构的落地。

1微服务架构概述 1

1.1单体应用架构存在的问题 1

1.2如何解决单体应用架构存在的问题 3

1.3什么是微服务 3

1.4微服务架构的优点与挑战 4

1.4.1微服务架构的优点 5

1.4.2微服务架构面临的挑战 5

1.5微服务设计原则 6

1.6如何实现微服务架构 7

1.6.1技术选型 7

1.6.2架构图及常用组件 8

2微服务开发框架——Spring Cloud 9

2.1Spring Cloud简介 9

2.2Spring Cloud特点 10

2.3Spring Cloud版本 10

2.3.1版本简介 10

2.3.2子项目一览 12

2.3.3Spring Cloud/Spring Boot版本兼容性 13

3开始使用Spring Cloud实战微服务 14

3.1Spring Cloud实战前提 14

3.1.1技术储备 14

3.1.2工具及软件版本 15

3.2服务提供者与服务消费者 16

3.3编写服务提供者 16

3.3.1手动编写项目 17

3.3.2使用Spring Initializr快速创建Spring Boot项目 21

3.4编写服务消费者 23

3.5为项目整合Spring Boot Actuator 25

3.6硬编码有哪些问题 28

4微服务注册与发现 30

4.1服务发现简介 30

4.2Eureka简介 32

4.3Eureka原理 32

4.4编写Eureka Server 34

4.5将微服务注册到Eureka Server上 36

4.6Eureka Server的高可用 38

4.6.1编写高可用Eureka Server 38

4.6.2将应用注册到Eureka Server集群上 41

4.7用户认证 41

4.7.1为Eureka Server添加用户认证 41

4.7.2将微服务注册到需认证的Eureka Server 43

4.8Eureka的元数据 43

4.8.1改造用户微服务 43

4.8.2改造电影微服务 44

4.9Eureka Server的REST端点 46

4.9.1示例 47

4.9.2注销微服务实例 52

4.10Eureka的自我保护模式 53

4.11多网卡环境下的IP选择 54

4.12Eureka的健康检查 56

4.13排除Jersey依赖 57

5使用Ribbon实现客户端侧负载均衡 59

5.1Ribbon简介 59

5.2为服务消费者整合Ribbon 60

5.3Ribbon配置自定义 63

5.3.1使用Java代码自定义Ribbon配置 63

5.3.2使用属性自定义Ribbon配置 67

5.4脱离Eureka使用Ribbon 68

5.5饥饿加载 70

6使用Feign实现声明式REST调用 72

6.1Feign简介 73

6.2为服务消费者整合Feign 73

6.3自定义Feign配置 75

6.3.1使用Java代码自定义Feign配置 75

6.3.2使用属性自定义Feign配置 79

6.4手动创建Feign 80

6.4.1修改用户微服务 80

6.4.2修改电影微服务 84

6.5Feign对继承的支持 86

6.6Feign对压缩的支持 87

6.7Feign的日志 87

6.7.1编码方式设置日志级别 88

6.7.2使用属性配置日志级别 89

6.8使用Feign构造多参数请求 90

6.8.1GET请求多参数的URL 90

6.8.2POST请求包含多个参数 91

6.9使用Feign上传文件 92

7使用Hystrix实现微服务的容错处理 94

7.1实现容错的手段 94

7.1.1雪崩效应 95

7.1.2如何容错 95

7.2使用Hystrix实现容错 97

7.2.1Hystrix简介 97

7.2.2通用方式整合Hystrix 98

7.2.3Hystrix断路器的状态监控与深入理解 102

7.2.4Hystrix线程隔离策略与传播上下文 103

7.2.5Feign使用Hystrix 106

7.3Hystrix的监控 112

7.4使用Hystrix Dashboard可视化监控数据 113

7.5使用Turbine聚合监控数据 116

7.5.1Turbine简介 116

7.5.2使用Turbine监控多个微服务 117

7.5.3使用消息中间件收集数据 119

8使用Zuul构建微服务网关 124

8.1为什么要使用微服务网关 124

8.2Zuul简介 126

8.3编写Zuul微服务网关 126

8.4管理端点 129

8.4.1routes端点 129

8.4.2filters端点 131

8.5路由配置详解 132

8.6Zuul的安全与Header 136

8.6.1敏感Header的设置 136

8.6.2忽略Header 136

8.7使用Zuul上传文件 137

8.8Zuul的过滤器 140

8.8.1过滤器类型与请求生命周期 140

8.8.2内置过滤器详解 141

8.8.3编写Zuul过滤器 144

8.8.4禁用Zuul过滤器 146

8.9Zuul的容错与回退 146

8.10饥饿加载 149

8.11Query String编码 150

8.12Hystrix隔离策略与线程池 150

8.12.1隔离策略 150

8.12.2线程池配置 151

8.13Zuul的高可用 152

8.13.1Zuul客户端也注册到了Eureka Server上 152

8.13.2Zuul客户端未注册到Eureka Server上 152

8.14使用Sidecar整合非JVM微服务 154

8.14.1编写Node.js微服务 154

8.14.2编写Sidecar 155

8.14.3Sidecar的端点 157

8.14.4Sidecar与Node.js微服务分离部署 158

8.14.5Sidecar原理分析 158

8.15使用Zuul聚合微服务 160

9使用Spring Cloud Config统一管理微服务配置 166

9.1为什么要统一管理微服务配置 166

9.2Spring Cloud Config简介 167

9.3编写Config Server 168

9.4编写Config Client 171

9.5Config Server的Git仓库配置详解 173

9.5.1占位符支持 173

9.5.2模式匹配 174

9.5.3搜索目录 174

9.5.4启动时加载配置文件 175

9.6Config Server的健康状况指示器 176

9.7配置内容的加解密 177

9.7.1安装JCE 177

9.7.2Config Server的加解密端点 177

9.7.3对称加密 177

9.7.4存储加密的内容 178

9.7.5非对称加密 179

9.8使用/refresh端点手动刷新配置 180

9.9使用Spring Cloud Bus自动刷新配置 181

9.9.1Spring Cloud Bus简介 181

9.9.2实现自动刷新 182

9.9.3局部刷新 183

9.9.4架构改进 184

9.9.5跟踪总线事件 184

9.10Spring Cloud Config与Eureka配合使用 186

9.11Spring Cloud Config的用户认证 187

9.12Config Server的高可用 188

9.12.1Git仓库的高可用 188

9.12.2RabbitMQ的高可用 189

9.12.3Config Server自身的高可用 189

10使用Spring Cloud Sleuth实现微服务跟踪 191

10.1为什么要实现微服务跟踪 191

10.2Spring Cloud Sleuth简介 192

10.3整合Spring Cloud Sleuth 194

10.4Spring Cloud Sleuth与ELK配合使用 196

10.5Spring Cloud Sleuth与Zipkin配合使用 200

10.5.1Zipkin简介 200

10.5.2编写Zipkin Server 200

10.5.3微服务整合Zipkin 202

10.5.4Zipkin与Eureka配合使用 205

10.5.5使用消息中间件收集数据 206

10.5.6使用Elasticsearch存储跟踪数据 209

10.5.7依赖关系图 211

11Spring Cloud常见问题与总结 213

11.1Eureka常见问题 213

11.1.1Eureka注册服务慢 213

11.1.2已停止的微服务节点注销慢或不注销 214

11.1.3如何自定义微服务的Instance ID 215

11.1.4Eureka的UNKNOWN问题总结与解决 217

11.2整合Hystrix后首次请求失败 218

11.2.1原因分析 218

11.2.2解决方案 218

11.3Turbine聚合的数据不完整 219

11.4Spring Cloud各组件超时 220

11.4.1RestTemplate的超时 221

11.4.2Ribbon的超时 221

11.4.3Feign的超时 221

11.4.4Hystrix的超时 222

11.4.5Zuul的超时 222

11.5Spring Cloud各组件重试 223

11.5.1重试步骤 224

11.5.2基于HTTP响应码重试 224

11.5.3关闭重试 224

11.5.4注意点 224

11.6Spring Cloud各组件调优 225

11.6.1Tomcat参数 225

11.6.2Hystrix参数 225

11.6.3Feign参数 226

11.6.4Zuul参数 226

11.7Spring Cloud各组件配置属性 228

11.7.1Spring Boot的配置 228

11.7.2Spring Cloud的配置 228

11.7.3原生配置 229

11.8Spring Cloud定位问题思路总结 229

12Docker入门 232

12.1Docker简介 232

12.2版本与迭代计划 232

12.2.1版本区别 233

12.2.2迭代计划 233

12.3Docker的架构 234

12.4安装Docker 236

12.4.1CentOS7安装Docker 236

12.4.2Ubuntu安装Docker 239

12.4.3Windows安装Docker 244

12.4.4Mac OS安装Docker 245

12.5配置镜像加速器 245

12.6Docker常用命令 246

12.6.1Docker镜像常用命令 246

12.6.2Docker容器常用命令 252

13将微服务运行在Docker上 260

13.1使用Dockerfile构建Docker镜像 260

13.1.1Dockerfile常用指令 261

13.1.2使用Dockerfile构建镜像 266

13.2使用Docker Registry管理Docker镜像 268

13.2.1使用Docker Hub管理镜像 268

13.2.2使用私有仓库管理镜像 270

13.3使用Maven插件构建Docker镜像 271

13.3.1快速入门 272

13.3.2插件读取Dockerfile进行构建 273

13.3.3将插件绑定在某个phase执行 274

13.3.4推送镜像 275

13.4常见问题与总结 277

14使用Docker Compose编排微服务 278

14.1Docker Compose简介 278

14.2安装Docker Compose 279

14.2.1安装Compose 279

14.2.2安装Compose命令补全工具 279

14.3Docker Compose快速入门 280

14.3.1基本步骤 280

14.3.2入门示例 280

14.3.3工程、服务、容器 281

14.4docker-compose.yml常用命令 281

14.5docker-compose常用命令 285

14.6Docker Compose网络设置 286

14.6.1基本概念 286

14.6.2更新容器 287

14.6.3links 287

14.6.4指定自定义网络 288

14.6.5配置默认网络 289

14.6.6使用已存在的网络 289

14.7综合实战:使用Docker Comose编排Spring Cloud微服务 289

14.7.1编排Spring Cloud微服务 289

14.7.2编排高可用的Eureka Server 293

14.7.3编排高可用Spring Cloud微服务集群及动态伸缩 295

14.8常见问题与总结 297

后记 298

附录A:本书配套代码 299

附录B:Spring Cloud YES——快速开发脚手架 300

附录C:使用Docker快速安装本书中的组件 301