Spring Cloud与Docker微服务架构实战 PDF

时间:2022-11-28 08:55:45

电子版百度云下载

链接: https://pan.baidu.com/s/115u011CJ8MZzJx_NqutyTQ

提取码: 关注公众号【GitHubCN】回复2019获取
Spring Cloud与Docker微服务架构实战 PDF

本书的代码

共计70+个DEMO
覆盖Eureka、Ribbon、Feign、Hystrix、Zuul、Spring Cloud Config、Spring Cloud Bus、Spring Cloud Sleuth、Docker、Docker Compose等。
1-11章代码地址:

https://github.com/itmuch/spring-cloud-docker-microservice-book-code
http://git.oschina.net/itmuch/spring-cloud-docker-microservice-book-code
12-14章配套代码地址:

https://github.com/itmuch/spring-cloud-docker-microservice-book-code-docker
http://git.oschina.net/itmuch/spring-cloud-docker-microservice-book-code-docker

Spring Cloud与Docker微服务架构实战 PDF

目录

1 微服务架构概述 1

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

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

1.3 什么是微服务3

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

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 10

2.1 Spring Cloud 简介10

2.2 Spring Cloud 特点10

2.3 Spring Cloud 版本11

2.3.1 版本简介11

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 硬编码有哪些问题27

4 微服务注册与发现. 29

4.1 服务发现简介29

4.2 Eureka 简介31

4.3 Eureka 原理31

4.4 编写Eureka Server 33

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

4.6 Eureka Server 的高可用36

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

4.7 为Eureka Server 添加用户认证39

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

4.8 理解Eureka 的元数据41

4.8.1 改造用户微服务41

4.8.2 改造电影微服务41

4.9 Eureka Server 的REST 端点43

4.9.1 示例45

4.9.2 注销微服务实例49

4.10 Eureka 的自我保护模式51

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

4.11.1 忽略指定名称的网卡52

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

4.11.3 只使用站点本地地址53

4.11.4 手动指定IP 地址53

4.12 Eureka 的健康检查53

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

5.1 Ribbon 简介56

5.2 为服务消费者整合Ribbon 57

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

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

5.5 脱离Eureka 使用Ribbon 64

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

6.1 Feign 简介67

6.2 为服务消费者整合Feign 67

6.3 自定义Feign 配置69

6.4 手动创建Feign 72

6.4.1 修改用户微服务72

6.4.2 修改电影微服务76

6.5 Feign 对继承的支持78

6.6 Feign 对压缩的支持79

6.7 Feign 的日志80

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

6.8.1 GET 请求多参数的URL 82

6.8.2 POST 请求包含多个参数83

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

7.1 实现容错的手段85

7.1.1 雪崩效应85

7.1.2 如何容错86

7.2 使用Hystrix 实现容错88

7.2.1 Hystrix 简介88

7.2.2 通用方式整合Hystrix 89

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

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

7.2.5 Feign 使用Hystrix 96

7.3 Hystrix 的监控101

7.3.1 Feign 项目的Hystrix 监控102

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

7.5 使用Turbine 聚合监控数据105

7.5.1 Turbine 简介105

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

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

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

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

8.2 Zuul 简介115

8.3 编写Zuul 微服务网关115

8.4 Zuul 的路由端点118

8.5 Zuul 的路由配置详解119

8.6 Zuul 的安全与Header 122

8.6.1 敏感Header 的设置122

8.6.2 忽略Header 123

8.7 使用Zuul 上传文件124

8.7.1 编写文件上传微服务124

8.8 Zuul 的过滤器127

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

8.8.2 编写Zuul 过滤器128

8.8.3 禁用Zuul 过滤器130

8.9 Zuul 的容错与回退130

8.9.1 为Zuul 添加回退131

8.10 Zuul 的高可用133

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

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

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

8.11.1 编写Node.js 微服务135

8.11.2 编写Sidecar 136

8.11.3 Sidecar 的端点138

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

8.11.5 Sidecar 原理分析139

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

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

9.2 Spring Cloud Config 简介143

9.3 编写Config Server 144

9.3.1 Config Server 的端点145

9.4 编写Config Client 147

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

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

9.7 配置内容的加解密153

9.7.1 安装JCE 153

9.7.2 Config Server 的加解密端点153

9.7.3 对称加密153

9.7.4 存储加密的内容154

9.7.5 非对称加密155

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

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

9.9.1 Spring Cloud Bus 简介157

9.9.2 实现自动刷新158

9.9.3 局部刷新159

9.9.4 架构改进159

9.9.5 跟踪总线事件160

9.10 Spring Cloud Config 与Eureka 配合使用161

9.11 Spring Cloud Config 的用户认证162

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

9.12 Config Server 的高可用164

9.12.1 Git 仓库的高可用164

9.12.2 RabbitMQ 的高可用164

9.12.3 Config Server 自身的高可用165

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

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

10.2 Spring Cloud Sleuth 简介168

10.3 整合Spring Cloud Sleuth 170

10.4 Spring Cloud Sleuth 与ELK 配合使用172

10.5 Spring Cloud Sleuth 与Zipkin 配合使用176

10.5.1 Zipkin 简介176

10.5.2 编写Zipkin Server 176

10.5.3 微服务整合Zipkin 178

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

10.5.5 存储跟踪数据183

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

11.1 Eureka 常见问题186

11.1.1 Eureka 注册服务慢186

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

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

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

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

11.2.1 原因分析191

11.2.2 解决方案191

11.3 Turbine 聚合的数据不完整191

11.3.1 解决方案192

11.4 Spring Cloud 各组件配置属性193

11.4.1 Spring Cloud 的配置193

11.4.2 原生配置193

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

12 Docker 入门. 197

12.1 Docker 简介197

12.2 Docker 的架构197

12.3 安装Docker 199

12.3.1 系统要求199

12.3.2 移除非官方软件包199

12.3.3 设置Yum 源199

12.3.4 安装Dokcer 200

12.3.5 卸载Docker 201

12.4 配置镜像加速器201

12.5 Docker 常用命令202

12.5.1 Docker 镜像常用命令202

12.5.2 Docker 容器常用命令204

13 将微服务运行在Docker 上 209

13.1 使用Dockerfile 构建Docker 镜像209

13.1.1 Dockerfile 常用指令210

13.1.2 使用Dockerfile 构建镜像215

13.2 使用Docker Registry 管理Docker 镜像217

13.2.1 使用Docker Hub 管理镜像217

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

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

13.3.1 快速入门221

13.3.2 插件读取Dockerfile 进行构建222

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

13.3.4 推送镜像224

13.4 常见问题与总结226

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

14.1 Docker Compose 简介227 .

14.2 安装Docker Compose 227

14.2.1 安装Compose 228

14.2.2 安装Compose 命令补全工具228

14.3 Docker Compose 快速入门229

14.3.1 基本步骤229

14.3.2 入门示例229

14.3.3 工程、服务、容器230

14.4 docker-compose.yml 常用命令230

14.4.1 build 230

14.4.2 command 231

14.4.3 dns 231

14.4.4 dns_search 231

14.4.5 environment 231

14.4.6 env_file 232

14.4.7 expose 232

14.4.8 external_links 232

14.4.9 image 232

14.4.10 links 232

14.4.11 networks 233

14.4.12 network_mode 233

14.4.13 ports 233

14.4.14 volumes 233

14.4.15 volumes_from 234

14.5 docker-compose 常用命令234

14.5.1 build 234

14.5.2 help 235

14.5.3 kill 235

14.5.4 logs 235

14.5.5 port 235

14.5.6 ps 235

14.5.7 pull 235

14.5.8 rm 236

14.5.9 run 236

14.5.10 scale 236

14.5.11 start 236

14.5.12 stop 236

14.5.13 up 236

14.6 Docker Compose 网络设置237

14.6.1 基本概念237

14.6.2 更新容器237

14.6.3 links 238

14.6.4 指定自定义网络238

14.6.5 配置默认网络239

14.6.6 使用已存在的网络239

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

14.7.1 编排Spring Cloud 微服务240

14.7.2 编排高可用的Eureka Server 243

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

14.8 常见问题与总结247

Spring Cloud与Docker微服务架构实战 PDF的更多相关文章

  1. Spring Cloud与Docker微服务架构实战 PDF版 内含目录

    Spring Cloud与Docker微服务架构实战  目录 1 微服务架构概述 1 1.1 单体应用架构存在的问题1 1.2 如何解决单体应用架构存在的问题3 1.3 什么是微服务3 1.4 微服务 ...

  2. 《Spring Cloud与Docker微服务架构实战》配套代码

    不才写了本使用Spring Cloud玩转微服务架构的书,书名是<Spring Cloud与Docker微服务架构实战> - 周立,已于2017-01-12交稿.不少朋友想先看看源码,现将 ...

  3. Spring Cloud与Docker——微服务架构概述

    Spring Cloud与Docker--微服务架构概述 单体应用架构概述 微服务概述 微服务的特性 微服务架构的优点 微服务面临的挑战 微服务的设计原则 单体应用架构概述 传统的服务发布都是采用单体 ...

  4. 基于 Spring Cloud 完整的微服务架构实战

    本项目是一个基于 Spring Boot.Spring Cloud.Spring Oauth2 和 Spring Cloud Netflix 等框架构建的微服务项目. @作者:Sheldon地址:ht ...

  5. springcloud与docker微服务架构实战--笔记

    看了<微服务那些事>之后,Spring boot和Spring Cloud的关系理清楚了,Spring cloud各个模块的作用也了解了. 但是,Spring cloud 与Docker的 ...

  6. SpringCloud与Docker微服务架构实战笔记

    一  微服务架构概述 1. 单体应用架构存在的问题 结合:https://www.cnblogs.com/jialanshun/p/10637454.html一起看,在该篇博客中搜索“单块架构的优缺点 ...

  7. spring cloud之docker微服务客户端注册eureka问题

    正常我们起一个微服务注册到eureka他的实例id是默认这样的主机名称:服务名称:服务端口号, 如果配置eureka.instance.prefer-ip-address=true则实例id为主机Ip ...

  8. SpringCloud(9)使用Spring Cloud OAuth2保护微服务系统

    一.简介 OAth2是一个标准的授权协议. 在认证与授权的过程中,主要包含以下3种角色. 服务提供方 Authorization Server. 资源持有者 Resource Server. 客户端 ...

  9. 【架构】Kubernetes和Spring Cloud哪个部署微服务更好?

    Spring Cloud 和Kubernetes都自称自己是部署和运行微服务的最好环境,但是它们在本质上和解决不同问题上是有很大差异的.在本文中,我们将看到每个平台如何帮助交付基于微服务的架构(MSA ...

随机推荐

  1. 工厂模式(Factory)

    一.分类 工厂模式主要是为创建对象提供过渡接口,以便将创建对象的具体过程屏蔽隔离起来,达到提高灵活性的目的. 工厂模式主要分为三个,简单工厂模式(Simple Factory)/ 工厂方法模式(Fac ...

  2. Python Django Apache配置

    项目结构目录: Apache 安装配置目录: C:\Apache2.2\conf\httpd.conf LoadModule wsgi_module modules/mod_wsgi.soWSGISc ...

  3. centos 设置永久dns

    最近在折腾一个问题. 由于服务器的带宽是联通5M, 不稳定.而且所处的网络的dns解析貌似老出问题,每隔一定周期解析时间特别长. 于是乎,想在本地做一个dns,这样可以减少dns解析时间,并做些静态配 ...

  4. String&period;Format数字格式化参考

    String.Format数字格式化输出 {0:N2} {0:D2} {0:C2} (转) 数字 {0:N2} 12.36 数字 {0:N0} 13 货币 {0:c2} $12.36 货币 {0:c4 ...

  5. UVa 101 The Blocks Problem

    题意:给出从左到右放置的n块木块(从0开始编号),再给出四种操作,再给出相应的操作,输出操作结束后每一堆木块的情况. 学习的紫书,因为每一堆的木块数是在发生变化的,所以用vector. 然后就是模拟几 ...

  6. &lbrack;CSS&rsqb;浮动的那点事儿

    元素是怎样浮动 元素的水平方向浮动,意味着元素只能左右移动而不能上下移动. 一个浮动元素会尽量向左或向右移动,直到它的外边缘碰到包含框或另一个浮动框的边框为止. 浮动元素之后的元素将围绕它. 浮动元素 ...

  7. if elseif else

    1)if,else if需要接判断表达式,只有在满足条件的时候执行而else语句是在前面条件都不满足的时候才能执行(2) 一个if...else if...else语句中可以有多个else if语句, ...

  8. Java同步块(synchronized block)使用详解

    Java 同步块(synchronized block)用来标记方法或者代码块是同步的.Java同步块用来避免竞争.本文介绍以下内容: Java同步关键字(synchronzied) 实例方法同步 静 ...

  9. LAP&plus;mysql-主从&plus;redis

    Redis是一个开源的,内存中的数据结构存储系统,他可以用作数据库,缓存和消息中间介.支持多种类型数据库结构,如字符串(strings),散列(hashes),列表(lists),集合(sets),有 ...

  10. 关于ubuntu14&period;04LTS 64位 播放优酷视频

    起因:chrome无法播放优酷视频,然后换firefox发现居然没有装flash 插件. 解释:关于chrome在网上看到了不少说法,说chrome新版本的不支持adobe flash之类的,但是这些 ...