正版全新  精通Spring Cloud微服务架构+SpringCloud与Docker微服务架构实pdf下载

正版全新 精通Spring Cloud微服务架构+SpringCloud与Docker微服务架构实百度网盘pdf下载

作者:
简介:正版全新 精通Spring Cloud微服务架构+SpringCloud与Docker微服务架构实
出版社:
出版时间:
pdf下载价格:0.00¥

免费下载


书籍下载


内容介绍


9787000034509

9787121340154 9787115504890 9787302530251


精通Spring Cloud微服务架构

深入理解Spring Cloud微服务架构,创建可维护、可伸缩的应用程序! 书中实例极具参考价值并提供详尽的源代码分析!

作者:[美] 皮奥特·闵可夫斯基 著 黄进青 译

定价:119元

印次:1-1

ISBN:9787302530251

蓝墨水图书专营店

本书详细阐述了与Spring Cloud微服务框架相关的基本解决方案,主要包括微服务简介、使用微服务的Spring、Spring Cloud概述、服务发现、使用Spring Cloud Config进行分布式配置、微服务之间的通信、负载均衡和断路器、使用API网关进行路由和过滤、分布式日志记录和跟踪、其他配置和发现功能、消息驱动的微服务、保护API的安全、测试Java微服务、Docker支持、云平台上的Spring微服务等内容。此外,本书还提供了相应的示例、代码,以帮助读者进一步理解相关方案的实现过程。本书适合作为高等院校计算机及相关的教材和教学参考书,也可作为相关开发人员的自学教材和参考手册。

前    言

开发、部署和运营云应用程序应该像本地应用程序一样简单。这应该是任何云平台、库或工具背后的管理原则。Spring Cloud可以轻松地为云开发JVM应用程序。本书将介绍Spring Cloud并帮助开发人员掌握其功能。

本书首先介绍如何配置Spring Cloud服务器并运行Eureka服务器以启用服务注册和发现;然后再深入剖析与负载均衡和断路相关的技术,包括利用Feign客户端的所有功能;后讨论和研究主题,包括如何为Spring Cloud实现分布式跟踪解决方案并构建消息驱动的微服务架构。

本书适合的读者

本书对热衷于利用Spring Cloud的开发人员有很强的吸引力。Spring Cloud是一个开源库,可帮助开发人员快速构建分布式。了解Java和Spring Framework将对本书的学习很有帮助,但之前不需要接触Spring Cloud。

本书内容综述

本书的写作思路明确,结构简单易懂。全书共分为3个部分,一部分是“微服务架构和Spring Cloud项目基础知识”,包括第1章~第3章,详细介绍了微服务、Spring Boot和Spring Cloud的基础知识。

? 第1章“微服务简介”,将介绍微服务架构、云环境等。读者将学习并理解基于微服务的应用程序和一体化应用程序之间的区别,同时了解如何迁移到微服务应用程序。

? 第2章“使用微服务的Spring”,将介绍Spring Boot框架。本章将详细说明如何有效地使用Spring Boot框架来创建微服务应用程序。此外还将介绍使用Spring MVC注解创建REST API、使用Swagger2提供API文档,以及使用Spring Boot Actuator端点公开运行状况检查和指标数据等主题。

? 第3章“Spring Cloud概述”,将简要介绍作为Spring Cloud一部分的主要项目。它将侧重于说明Spring Cloud实现的主要模式并将它们分配给特定项目。

本书的第二部分是“微服务架构常见元素和Spring Cloud实现”,包括第4章~第13章,详细介绍了Spring Cloud各个组件的配置和应用。

? 第4章“服务发现”,将使用Spring Cloud Netflix Eureka描述服务发现模式。本章将详细说明如何在独立模式下运行Eureka服务器,以及如何使用对等副本运行多个服务器实例。此外还将介绍如何在客户端启用发现并在不同区域中注册这些客户端。

? 第5章“使用Spring Cloud Config进行分布式配置”,将详细介绍如何在应用程序中使用Spring Cloud Config进行分布式配置。本章将说明如何使用Spring Cloud Bus启用属性源的不同后端存储库并推送更改通知。通过比较发现一个引导程序和配置一个引导程序方法,详细说明了发现服务和配置服务器之间的集成。

? 第6章“微服务之间的通信”,将描述参与服务间通信的重要元素:HTTP客户端和负载均衡器。本章将详细介绍如何在有或没有服务发现的情况下使用Spring RestTemplate、Ribbon和Feign客户端。

? 第7章“负载均衡和断路器”,将描述与微服务之间的服务间通信相关的更主题。本章将详细介绍如何使用Ribbon客户端实现不同的负载均衡算法,使用Hystrix启用断路器模式并使用Hystrix仪表板监控通信统计信息。

? 第8章“使用API网关进行路由和过滤”,将比较用作Spring云应用程序的API网关和代理的两个项目:Spring Cloud Netlix Zuul和Spring Cloud Gateway。本章将详细介绍如何将它们与服务发现集成,并创建简单而更的路由和过滤    规则。

? 第9章“分布式日志记录和跟踪”,将介绍一些流行的工具,用于收集和分析由微服务生成的日志记录和跟踪信息。本章将说明如何使用Spring Cloud Sleuth附加跟踪信息和关联消息,此外还将运行与Elastic Stack集成的示例应用程序,以便发送日志消息,并使用Zipkin来收集跟踪的信息。

? 第10章“其他配置和发现功能”,将介绍两种用于服务发现和分布式配置的流行产品:Consul和ZooKeeper。本章将详细说明如何在本地运行这些工具,并将Spring Cloud应用程序与它们集成在一起。

? 第11章“消息驱动的微服务”,将指导开发人员如何在微服务之间提供异步的、消息驱动的通信。本章将详细介绍如何将RabbitMQ和Apache Kafka消息代理与Spring Cloud应用程序集成,以实现异步一对一和发布/订阅通信方式。

? 第12章“保护API的安全”,将描述保护微服务的各种方法。本章将实现一个由所有先前引入的元素组成的,这些元素通过SSL相互通信。此外还将详细说明如何使用OAuth2和JWT令牌来给传入API的请求授权。

? 第13章“测试Java微服务”,将描述微服务测试的不同策略。它将侧重于演示由使用者驱动的契约测试,这尤其适用于基于微服务的环境。此外还将介绍如何使用Hoverfly、Pact、Spring Cloud Contract、Gatling等框架来实现不同类型的自动化测试。

本书的第三部分是“Docker支持和Spring Cloud平台”,包括第14章~第15章,详细介绍了Docker容器、Pivotal Cloud Foundry和Heroku云平台。

? 第14章“Docker支持”,将简要介绍Docker。它将侧重于描述常用的Docker命令,这些命令用于在容器化环境中运行和监视微服务。此外还将详细说明如何使用流行的持续集成服务器(Jenkins)构建和运行容器,并将它们部署在Kubernetes平台上。

? 第15章“云平台上的Spring微服务”,将介绍两个支持Java应用程序的流行云平台:Pivotal Cloud Foundry和Heroku。本章将详细说明如何使用命令行工具或Web控制台在这些平台上部署、启动、扩展和监视应用程序。

阅读基础

要顺利阅读本书并完成所有代码示例,读者应具备以下基础条件:

? 有效的互联网连接

? Java 8+

? Docker

? Maven 

? Git客户端

下载示例代码文件

读者可以从www.packtpub.com下载本书的示例代码文件。具体步骤如下:

(1)登录或注册www.packtpub.com。

(2)选择Support(支持)选项卡。

(3)单击Code Downloads&Errata(代码下载和勘误表)。

(4)在Search(搜索)框中输入图书名称Mastering Spring Cloud,然后按照屏幕上的说明进行操作。

下载文件后,请确保使用新版本解压缩或解压缩文件夹:

? WinRAR/7-Zip(Windows)

? Zipeg/iZip/UnRarX(Mac)

? 7-Zip/PeaZip(Linux)

该书的代码包也已经在GitHub上托管,网址为https://github.com/PacktPublishing/ Mastering-Spring-Cloud,欢迎访问。

本书约定

本书中使用了许多文本约定。

(1)CodeInText:表示文本中的代码字、数据库表名、文件夹名、文件名、文件扩展名、路径名、虚拟URL、用户输入和Twitter句柄等。以下段落就是一个示例。

“HTTP API端点(http://localhost:8889/client-service-zone3.yml)的后一个可用版本,返回与输入文件相同的数据。”

(2)有关代码块的设置如下所示。

 

   org.springframework.cloud

   spring-cloud-config-server

(3)当我们希望引起读者对代码块的特定部分的注意时,相关的行或项目以粗体显示。

spring:

 rabbitmq:

   host: 192.168.99.100

   port: 5672

(4)任何命令行输入或输出都采用如下所示的粗体代码形式。

$ curl -H“X-Vault-Token:client”-X GET 

http://192.168.99.100:8200/v1/secret/client-service

(5)本书还使用了以下两个图标。

 表示警告或重要的注意事项。

 表示提示或小技巧。

关于作者

Piotr Mińkowski拥有超过10年的银行和电信行业开发人员和架构师的工作经验。他擅长Java以及与之相关的技术、工具和框架。目前他在波兰的移动运营商Play公司工作,负责IT架构。他帮助该公司完成了从一体化应用程序/面向服务的架构(SOA)到基于微服务的架构的迁移工作,还帮助建立了完整的持续集成和持续交付环境。

关于审稿者

Samer ABDELKAFI拥有超过13年的软件架构师和工程师工作经验,主要专注于开源技术。他为不同领域的众多项目做出了贡献,如银行、保险、教育、公共服务和公用事业计费等。2016年年底,他创建了DEVACT,一家专门从事信息技术咨询的公司。除了日常工作之外,Samer还经常在他的博客中分享自己的经验,撰写与Java和Web技术相关的文章。


蓝墨水图书专营店

深入浅出Docker

内容简介

本书是一本Docker入门图书,全书分为17章,从Docker概览和Docker技术两部分进行全面解析,深入浅出地介绍了Docker的相关知识,清晰详细的操作步骤结合大量的实际代码帮助读者学以致用,将Docker知识应用到真实的项目开发当中。

 

本书适合对Docker感兴趣的入门新手、Docker技术开发人员以及运维人员阅读,本书也可作为Docker认证工程师考试的参考图书。

目录

部分 Docker概览

 

第 1章 容器发展之路 2

 

1.1 落后的旧时代 2

 

1.2 你好,VMware! 2

 

1.3 虚拟机的不足 3

 

1.4 你好,容器! 3

 

1.5 Linux容器 3

 

1.6 你好,Docker! 4

 

1.7 Windows容器 4

 

1.8 Windows容器vs Linux容器 4

 

1.9 Mac容器现状 5

 

1.10 Kubernetes 5

 

1.11 本章小结 6

 

第 2章 走进Docker 7

 

2.1 Docker—简介 7

 

2.2 Docker公司 7

 

2.3 Docker运行时与编排引擎 8

 

2.4 Docker开源项目(Moby) 9

 

2.5 容器生态 10

 

2.6 开放容器计划 11

 

2.7 本章小结 12

 

第3章 Docker安装 13

 

3.1 Windows版Docker(DfW) 13

 

3.2 Mac版Docker(DfM) 17

 

3.3 在Linux上安装Docker 19

 

3.4 在Windows Server 2016上安装Docker 21

 

3.5 Docker引擎(Engine)升级 22

 

3.5.1 在Ubuntu 16.04上升级Docker CE 23

 

3.5.2 在Windows Server 2016上升级Docker EE 24

 

3.6 Docker存储驱动的选择 25

 

3.6.1 Device Mapper配置 26

 

3.6.2 让Docker自动设置direct-lvm 26

 

3.6.3 手动配置Device Mapper的direct-lvm 28

 

3.7 本章小结 28

 

第4章 纵观Docker 29

 

4.1 运维视角 29

 

4.1.1 镜像 30

 

4.1.2 容器 31

 

4.1.3 连接到运行中的容器 34

 

4.2 开发视角 35

 

4.3 本章小结 38

 

第二部分 Docker技术

 

第5章 Docker引擎 40

 

5.1 Docker引擎—简介 40

 

5.2 Docker引擎—详解 41

 

5.2.1 摆脱LXC 41

 

5.2.2 摒弃大而全的Docker daemon 42

 

5.2.3 开放容器计划(OCI)的影响 43

 

5.2.4 runc 43

 

5.2.5 containerd 43

 

5.2.6 启动一个新的容器(示例) 44

 

5.2.7 该模型的显著优势 45

 

5.2.8 shim 45

 

5.2.9 在Linux中的实现 46

 

5.2.10 daemon的作用 46

 

5.3 本章小结 46

 

第6章 Docker镜像 48

 

6.1 Docker镜像—简介 48

 

6.2 Docker镜像—详解 48

 

6.2.1 镜像和容器 49

 

6.2.2 镜像通常比较小 49

 

6.2.3 拉取镜像 49

 

6.2.4 镜像命名 51

 

6.2.5 镜像仓库服务 51

 

6.2.6 镜像命名和标签 52

 

6.2.7 为镜像打多个标签 54

 

6.2.8 过滤docker image ls的输出内容 55

 

6.2.9 通过CLI方式搜索Docker Hub 56

 

6.2.10 镜像和分层 57

 

6.2.11 共享镜像层 60

 

6.2.12 根据摘要拉取镜像 61

 

6.2.13 镜像散列值(摘要) 63

 

6.2.14 多层架构的镜像 63

 

6.2.15 删除镜像 65

 

6.3 镜像—命令 67

 

6.4 本章小结 67

 

第7章 Docker容器 68

 

7.1 Docker容器—简介 68

 

7.2 Docker容器—详解 69

 

7.2.1 容器vs虚拟机 69

 

7.2.2 虚拟机的额外开销 71

 

7.2.3 运行的容器 71

 

7.2.4 检查Docker daemon 71

 

7.2.5 启动一个简单容器 72

 

7.2.6 容器进程 74

 

7.2.7 容器生命周期 75

 

7.2.8 优雅地停止容器 78

 

7.2.9 利用重启策略进行容器的自我修复 78

 

7.2.10 Web服务器示例 80

 

7.2.11 查看容器详情 82

 

7.2.12 快速清理 82

 

7.3 容器—命令 83

 

7.4 本章小结 84

 

第8章 应用的容器化 85

 

8.1 应用的容器化—简介 85

 

8.2 应用的容器化—详解 86

 

8.2.1 单体应用容器化 86

 

8.2.2 生产环境中的多阶段构建 95

 

8.2.3 实践 98

 

8.3 应用的容器化—命令 100

 

8.4 本章小结 101

 

第9章 使用Docker Compose部署应用 102

 

9.1 使用Docker Compose部署应用—简介 102

 

9.2 使用Docker Compose部署应用—详解 103

 

9.2.1 Docker Compose的背景 103

 

9.2.2 安装Docker Compose 103

 

9.2.3 Compose文件 105

 

9.2.4 使用Docker Compose部署应用 107

 

9.2.5 使用Docker Compose管理应用 110

 

9.3 使用Docker Compose部署应用—命令 115

 

9.4 本章小结 116

 

第 10章 Docker Swarm 117

 

10.1 Docker Swarm—简介 117

 

10.2 Docker Swarm—详解 118

 

10.2.1 Swarm的初步介绍 118

 

10.2.2 搭建安全Swarm集群 119

 

10.2.3 Swarm服务 125

 

10.2.4 故障排除 133

 

10.3 Docker Swarm—命令 134

 

10.4 本章小结 135

 

第 11章 Docker网络 136

 

11.1 Docker网络—简介 136

 

11.2 Docker网络—详解 137

 

11.2.1 基础理论 137

 

11.2.2 单机桥接网络 140

 

11.2.3 多机覆盖网络 146

 

11.2.4 接入现有网络 146

 

11.2.5 服务发现 152

 

11.2.6 Ingress网络 153

 

11.3 Docker网络—命令 156

 

11.4 本章小结 156

 

第 12章 Docker覆盖网络 157

 

12.1 Docker覆盖网络—简介 157

 

12.2 Docker覆盖网络—详解 157

 

12.2.1 在Swarm模式下构建并测试Docker覆盖网络 158

 

12.2.2 工作原理 164

 

12.3 Docker覆盖网络—命令 168

 

12.4 本章小结 168

 

第 13章 卷与持久化数据 169

 

13.1 卷与持久化数据—简介 169

 

13.2 卷与持久化数据—详解 169

 

13.2.1 容器与非持久数据 170

 

13.2.2 容器与持久化数据 170

 

13.2.3 在集群节点间共享存储 175

 

13.3 卷与持久化数据—命令 176

 

13.4 本章小结 176

 

第 14章 使用Docker Stack部署应用 177

 

14.1 使用Docker Stack部署应用—简介 177

 

14.2 使用Docker Stack部署应用—详解 178

 

14.2.1 简单应用 178

 

14.2.2 深入分析Stack文件 180

 

14.2.3 部署应用 186

 

14.2.4 管理应用 191

 

14.3 使用Docker Stack部署应用—命令 193

 

14.4 本章小结 194

 

第 15章 Docker安全 195

 

15.1 Docker安全—简介 195

 

15.2 Docker安全—详解 196

 

15.2.1 Linux安全技术 197

 

15.2.2 Docker平台安全技术 201

 

15.3 本章小结 212

 

第 16章 企业版工具 213

 

16.1 企业版工具—简介 213

 

16.2 企业版工具—详解 214

 

16.2.1 Docker EE引擎 214

 

16.2.2 Docker通用控制平面(UCP) 216

 

16.2.3 Docker可信镜像仓库服务(DTR) 227

 

16.3 本章小结 233

 

第 17章 企业级特性 234

 

17.1 企业级特性—简介 234

 

17.2 企业级特性—详解 234

 

17.2.1 基于角色的权限控制(RBAC) 235

 

17.2.2 集成活动目录 239

 

17.2.3 Docker内容信任机制(DCT) 241

 

17.2.4 配置Docker可信镜像仓库服务(DTR) 243

 

17.2.5 使用Docker可信镜像仓库服务 244

 

17.2.6 提升镜像 247

 

17.2.7 HTTP路由网格(HRM) 250

 

17.3 本章小结 253

 

附录A 安全客户端与daemon的通信 255

 

附录B DCA考试 265

 

附录C 延伸 270

Spring Cloud与Docker微服务架构实战(第2版)

内容简介

  本书基于Spring Cloud Edgware RELEASE 与Docker 17.09,以指导技术团队实现微服务架构落地为宗旨,覆盖微服务理论、微服务开发框架(Spring Cloud)及运行平台(Docker)三大主题。全书分为3部分,第1部分对微服务架构进行介绍;第2部分使用Spring Cloud 开发框架编写一个“电影售票”;第3部分讲解如何将微服务应用运行在Docker 之上。全书采用精心设计的Demo 驱动,以连贯的场景、真实的代码示例来引导读者学习用强大的微服务技术实现架构设计。作为第2版,本书增补大量新版本框架的技术特性及其技巧、用例,以帮助读者避开升级中可能遇到的困难与陷阱。

  本书适合Java 工程师、架构师及运维人员及技术爱好者阅读。

目录

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.1 Spring Cloud 简介 . 9

2.2 Spring Cloud 特点 . 10

2.3 Spring Cloud 版本 . 10

2.3.1 版本简介10

2.3.2 子项目一览 12

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

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

3.1 Spring 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 微服务注册与发现 

4.1 服务发现简介. 30

4.2 Eureka 简介 . 32

4.3 Eureka 原理 . 32

4.4 编写Eureka Server 34

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

4.6 Eureka 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.8 Eureka 的元数据43

4.8.1 改造用户微服务 43

4.8.2 改造电影微服务 44

4.9 Eureka Server 的REST 端点 46

4.9.1 示例 47

4.9.2 注销微服务实例 52

4.10 Eureka 的自我保护模式 53

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

4.12 Eureka 的健康检查 56

4.13 排除Jersey 依赖. 57

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

5.1 Ribbon 简介 59

5.2 为服务消费者整合Ribbon 60

5.3 Ribbon 配置自定义 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.1 Feign 简介 73

6.2 为服务消费者整合Feign . 73

6.3 自定义Feign 配置 . 75

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

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

6.4 手动创建Feign80

6.4.1 修改用户微服务 80

6.4.2 修改电影微服务 84

6.5 Feign 对继承的支持 86

6.6 Feign 对压缩的支持 87

6.7 Feign 的日志 87

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

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

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

6.8.1 GET 请求多参数的URL 90

6.8.2 POST 请求包含多个参数 .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.1 Hystrix 简介 97

7.2.2 通用方式整合Hystrix. 98

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

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

7.2.5 Feign 使用Hystrix . 106

7.3 Hystrix 的监控112

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

7.5 使用Turbine 聚合监控数据 116

7.5.1 Turbine 简介 116

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

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

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

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

8.2 Zuul 简介 . 126

8.3 编写Zuul 微服务网关 . 126

8.4 管理端点 . 129

8.4.1 routes 端点 129

8.4.2 filters 端点 131

8.5 路由配置详解. 132

8.6 Zuul 的安全与Header . 136

8.6.1 敏感Header 的设置 136

8.6.2 忽略Header 136

8.7 使用Zuul 上传文件 137

8.8 Zuul 的过滤器140

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

8.8.2 内置过滤器详解 141

8.8.3 编写Zuul 过滤器 . 144

8.8.4 禁用Zuul 过滤器 . 146

8.9 Zuul 的容错与回退 146

8.10 饥饿加载 . 149

8.11 Query String 编码 . 150

8.12 Hystrix 隔离策略与线程池 150

8.12.1 隔离策略150

8.12.2 线程池配置 151

8.13 Zuul 的高可用152

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

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

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

8.14.1 编写Node.js 微服务 154

8.14.2 编写Sidecar 155

8.14.3 Sidecar 的端点 . 157

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

8.14.5 Sidecar 原理分析 . 158

8.15 使用Zuul 聚合微服务 . 160

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

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

9.2 Spring Cloud Config 简介 . 167

9.3 编写Config Server . 168

9.4 编写Config Client . 171

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

9.5.1 占位符支持 173

9.5.2 模式匹配174

9.5.3 搜索目录174

9.5.4 启动时加载配置文件. 175

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

9.7 配置内容的加解密 177

9.7.1 安装JCE 177

9.7.2 Config 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.1 Spring Cloud Bus 简介. 181

9.9.2 实现自动刷新 . 182

9.9.3 局部刷新183

9.9.4 架构改进184

9.9.5 跟踪总线事件 . 184

9.10 Spring Cloud Config 与Eureka 配合使用. 186

9.11 Spring Cloud Config 的用户认证 187

9.12 Config Server 的高可用 188

9.12.1 Git 仓库的高可用 . 188

9.12.2 RabbitMQ 的高可用 189

9.12.3 Config Server 自身的高可用 189

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

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

10.2 Spring Cloud Sleuth 简介 192

10.3 整合Spring Cloud Sleuth 194

10.4 Spring Cloud Sleuth 与ELK 配合使用 . 196

10.5 Spring Cloud Sleuth 与Zipkin 配合使用 200

10.5.1 Zipkin 简介 200

10.5.2 编写Zipkin Server 200

10.5.3 微服务整合Zipkin 202

10.5.4 Zipkin 与Eureka 配合使用 205

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

10.5.6 使用Elasticsearch 存储跟踪数据. 209

10.5.7 依赖关系图 211

11 Spring Cloud 常见问题与总结 213

11.1 Eureka 常见问题213

11.1.1 Eureka 注册服务慢 213

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

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

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

11.2 整合Hystrix 后请求失败. 218

11.2.1 原因分析218

11.2.2 解决方案218

11.3 Turbine 聚合的数据不完整 219

11.4 Spring Cloud 各组件超时 . 220

11.4.1 RestTemplate 的超时 221

11.4.2 Ribbon 的超时 . 221

11.4.3 Feign 的超时 221

11.4.4 Hystrix 的超时 222

11.4.5 Zuul 的超时 222

11.5 Spring Cloud 各组件重试 . 223

11.5.1 重试步骤224

11.5.2 基于HTTP 响应码重试 224

11.5.3 关闭重试224

11.5.4 注意点224

11.6 Spring Cloud 各组件调优 . 225

11.6.1 Tomcat 参数 225

11.6.2 Hystrix 参数 225

11.6.3 Feign 参数 226

11.6.4 Zuul 参数 . 226

11.7 Spring Cloud 各组件配置属性. 228

11.7.1 Spring Boot 的配置 228

11.7.2 Spring Cloud 的配置 228

11.7.3 原生配置229

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

12 Docker 入门232

12.1 Docker 简介 232

12.2 版本与迭代计划232

12.2.1 版本区别233

12.2.2 迭代计划233

12.3 Docker 的架构234

12.4 安装Docker 236

12.4.1 CentOS 7 安装Docker 236

12.4.2 Ubuntu 安装Docker 239

12.4.3 Windows 安装Docker. 244

12.4.4 Mac OS 安装Docker 245

12.5 配置镜像加速器245

12.6 Docker 常用命令246

12.6.1 Docker 镜像常用命令. 246

12.6.2 Docker 容器常用命令. 252

13 将微服务运行在Docker上 260

13.1 使用Dockerfile 构建Docker 镜像 . 260

13.1.1 Dockerfile 常用指令 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.1 Docker Compose 简介 . 278

14.2 安装Docker Compose . 279

14.2.1 安装Compose . 279

14.2.2 安装Compose 命令补全工具 . 279

14.3 Docker Compose 快速入门 280

14.3.1 基本步骤 280

14.3.2 入门示例 280

14.3.3 工程、服务、容器 281

14.4 docker-compose.yml 常用命令281

14.5 docker-compose 常用命令 285

14.6 Docker Compose 网络设置 286

14.6.1 基本概念 286

14.6.2 更新容器 287

14.6.3 links 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



^_^:09019b90ba974ce65fdc690cb4bc23ac