包邮 Spring Cloud与Docker微服务架构实战pdf下载

包邮 Spring Cloud与Docker微服务架构实战百度网盘pdf下载

作者:
简介:包邮 Spring Cloud与Docker微服务架构实战
出版社:
出版时间:2017-05
pdf下载价格:0.00¥

免费下载


书籍下载


内容介绍



商品参数

Spring Cloud与Docker微服务架构实战
              定价 69.00
出版社 电子工业出版社
版次 1
出版时间 2017年05月
开本 16开
作者 周立
装帧 平装-胶订
页数 268
字数 342179
ISBN编码 9787121312717


内容介绍

  作为一部帮助大家实现微服务架构落地的作品,《Spring Cloud与Docker微服务架构实战》覆盖了微服务理论、微服务开发框架(Spring Cloud)以及运行平台(Docker)三大主题。全书可分为三部分,第1章对微服务架构进行了系统的介绍;第2-11章使用Spring Cloud开发框架编写了一个“电影售票系统”;第12-14章则讲解了如何将微服务应用运行在Docker之上。全书Demo驱动学习,以连贯的场景、具体的代码示例来引导读者学习相关知识,zui终使用特定的技术栈实现微服务架构的落地。

目录

1 微服务架构概述. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1

n

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

n

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

n

1.3 什么是微服务3

n

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

n

1.4.1 微服务架构的优点5

n

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

n

1.5 微服务设计原则6

n

1.6 如何实现微服务架构7

n

1.6.1 技术选型7

n

1.6.2 架构图及常用组件8

n

2 微服务开发框架——Spring Cloud . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

n

2.1 Spring Cloud 简介10

n

2.2 Spring Cloud 特点10

n

2.3 Spring Cloud 版本11

n

2.3.1 版本简介11

n

2.3.2 子项目一览12

n

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

n

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

n

3.1 Spring Cloud 实战前提14

n

3.1.1 技术储备14

n

3.1.2 工具及软件版本15

n

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

n

3.3 编写服务提供者16

n

3.3.1 手动编写项目17

n

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

n

3.4 编写服务消费者23

n

3.5 为项目整合Spring Boot Actuator 25

n

3.6 硬编码有哪些问题27

n

4 微服务注册与发现. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

n

4.1 服务发现简介29

n

4.2 Eureka 简介31

n

4.3 Eureka 原理31

n

4.4 编写Eureka Server 33

n

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

n

4.6 Eureka Server 的高可用36

n

4.6.1 将应用注册到Eureka Server 集群上38

n

4.7 为Eureka Server 添加用户认证39

n

4.7.1 将微服务注册到需认证的Eureka Server 40

n

4.8 理解Eureka 的元数据41

n

4.8.1 改造用户微服务41

n

4.8.2 改造电影微服务41

n

4.9 Eureka Server 的REST 端点43

n

4.9.1 示例45

n

4.9.2 注销微服务实例49

n

4.10 Eureka 的自我保护模式51

n

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

n

4.11.1 忽略指定名称的网卡52

n

4.11.2 使用正则表达式,指定使用的网络地址52

n

4.11.3 只使用站点本地地址53

n

4.11.4 手动指定IP 地址53

n

4.12 Eureka 的健康检查53

n

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

n

5.1 Ribbon 简介56

n

5.2 为服务消费者整合Ribbon 57

n

5.3 使用Java 代码自定义Ribbon 配置60

n

5.4 使用属性自定义Ribbon 配置63

n

5.5 脱离Eureka 使用Ribbon 64

n

6 使用Feign 实现声明式REST 调用. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66

n

6.1 Feign 简介67

n

6.2 为服务消费者整合Feign 67

n

6.3 自定义Feign 配置69

n

6.4 手动创建Feign 72

n

6.4.1 修改用户微服务72

n

6.4.2 修改电影微服务76

n

6.5 Feign 对继承的支持78

n

6.6 Feign 对压缩的支持79

n

6.7 Feign 的日志80

n

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

n

6.8.1 GET 请求多参数的URL 82

n

6.8.2 POST 请求包含多个参数83

n

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

n

7.1 实现容错的手段85

n

7.1.1 雪崩效应85

n

7.1.2 如何容错86

n

7.2 使用Hystrix 实现容错88

n

7.2.1 Hystrix 简介88

n

7.2.2 通用方式整合Hystrix 89

n

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

n

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

n

7.2.5 Feign 使用Hystrix 96

n

7.3 Hystrix 的监控101

n

7.3.1 Feign 项目的Hystrix 监控102

n

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

n

7.5 使用Turbine 聚合监控数据105

n

7.5.1 Turbine 简介105

n

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

n

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

n

8 使用Zuul 构建微服务网关. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113

n

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

n

8.2 Zuul 简介115

n

8.3 编写Zuul 微服务网关115

n

8.4 Zuul 的路由端点118

n

8.5 Zuul 的路由配置详解119

n

8.6 Zuul 的安全与Header 122

n

8.6.1 敏感Header 的设置122

n

8.6.2 忽略Header 123

n

8.7 使用Zuul 上传文件124

n

8.7.1 编写文件上传微服务124

n

8.8 Zuul 的过滤器127

n

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

n

8.8.2 编写Zuul 过滤器128

n

8.8.3 禁用Zuul 过滤器130

n

8.9 Zuul 的容错与回退130

n

8.9.1 为Zuul 添加回退131

n

8.10 Zuul 的高可用133

n

8.10.1 Zuul 客户端也注册到了Eureka Server 上133

n

8.10.2 Zuul 客户端未注册到Eureka Server 上133

n

8.11 使用Sidecar 整合非JVM 微服务134

n

8.11.1 编写Node.js 微服务135

n

8.11.2 编写Sidecar 136

n

8.11.3 Sidecar 的端点138

n

8.11.4 Sidecar 与Node.js 微服务分离部署139

n

8.11.5 Sidecar 原理分析139

n

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

n

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

n

9.2 Spring Cloud Config 简介143

n

9.3 编写Config Server 144

n

9.3.1 Config Server 的端点145

n

9.4 编写Config Client 147

n

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

n

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

n

9.7 配置内容的加解密153

n

9.7.1 安装JCE 153

n

9.7.2 Config Server 的加解密端点153

n

9.7.3 对称加密153

n

9.7.4 存储加密的内容154

n

9.7.5 非对称加密155

n

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

n

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

n

9.9.1 Spring Cloud Bus 简介157

n

9.9.2 实现自动刷新158

n

9.9.3 局部刷新159

n

9.9.4 架构改进159

n

9.9.5 跟踪总线事件160

n

9.10 Spring Cloud Config 与Eureka 配合使用161

n

9.11 Spring Cloud Config 的用户认证162

n

9.11.1 Config Client 连接需用户认证的Config Server 163

n

9.12 Config Server 的高可用164

n

9.12.1 Git 仓库的高可用164

n

9.12.2 RabbitMQ 的高可用164

n

9.12.3 Config Server 自身的高可用165

n

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

n

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

n

10.2 Spring Cloud Sleuth 简介168

n

10.3 整合Spring Cloud Sleuth 170

n

10.4 Spring Cloud Sleuth 与ELK 配合使用172

n

10.5 Spring Cloud Sleuth 与Zipkin 配合使用176

n

10.5.1 Zipkin 简介176

n

10.5.2 编写Zipkin Server 176

n

10.5.3 微服务整合Zipkin 178

n

10.5.4 使用消息中间件收集数据181

n

10.5.5 存储跟踪数据183

n

11 Spring Cloud 常见问题与总结. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186

n

11.1 Eureka 常见问题186

n

11.1.1 Eureka 注册服务慢186

n

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

n

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

n

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

n

11.2 Hystrix/Feign 整合Hystrix 后首次请求失败190

n

11.2.1 原因分析191

n

11.2.2 解决方案191

n

11.3 Turbine 聚合的数据不完整191

n

11.3.1 解决方案192

n

11.4 Spring Cloud 各组件配置属性193

n

11.4.1 Spring Cloud 的配置193

n

11.4.2 原生配置193

n

11.5 Spring Cloud 定位问题思路总结194

n

12 Docker 入门. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197

n

12.1 Docker 简介197

n

12.2 Docker 的架构197

n

12.3 安装Docker 199

n

12.3.1 系统要求199

n

12.3.2 移除非官方软件包199

n

12.3.3 设置Yum 源199

n

12.3.4 安装Dokcer 200

n

12.3.5 卸载Docker 201

n

12.4 配置镜像加速器201

n

12.5 Docker 常用命令202

n

12.5.1 Docker 镜像常用命令202

n

12.5.2 Docker 容器常用命令204

n

13 将微服务运行在Docker 上. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209

n

13.1 使用Dockerfile 构建Docker 镜像209

n

13.1.1 Dockerfile 常用指令210

n

13.1.2 使用Dockerfile 构建镜像215

n

13.2 使用Docker Registry 管理Docker 镜像217

n

13.2.1 使用Docker Hub 管理镜像217

n

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

n

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

n

13.3.1 快速入门221

n

13.3.2 插件读取Dockerfile 进行构建222

n

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

n

13.3.4 推送镜像224

n

13.4 常见问题与总结226

n

14 使用Docker Compose 编排微服务. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227

n

14.1 Docker Compose 简介227

n

14.2 安装Docker Compose 227

n

14.2.1 安装Compose 228

n

14.2.2 安装Compose 命令补全工具228

n

14.3 Docker Compose 快速入门229

n

14.3.1 基本步骤229

n

14.3.2 入门示例229

n

14.3.3 工程、服务、容器230

n

14.4 docker-compose.yml 常用命令230

n

14.4.1 build 230

n

14.4.2 command 231

n

14.4.3 dns 231

n

14.4.4 dns_search 231

n

14.4.5 environment 231

n

14.4.6 env_file 232

n

14.4.7 expose 232

n

14.4.8 external_links 232

n

14.4.9 image 232

n

14.4.10 links 232

n

14.4.11 networks 233

n

14.4.12 network_mode 233

n

14.4.13 ports 233

n

14.4.14 volumes 233

n

14.4.15 volumes_from 234

n

14.5 docker-compose 常用命令234

n

14.5.1 build 234

n

...............