正版4本 Spring Cloud与Docker微服务架构实战第2版+Spring微服务实战+深入理pdf下载

正版4本 Spring Cloud与Docker微服务架构实战第2版+Spring微服务实战+深入理百度网盘pdf下载

作者:
简介:正版4本 Spring Cloud与Docker微服务架构实战第2版+Spring微服务实战+深入理
出版社:
出版时间:
pdf下载价格:0.00¥

免费下载


书籍下载


内容介绍

jqr180714

共4本,合计286.00元

Spring Cloud与Docker微服务架构实战(第2版)   9787121340154  定价 ¥79.00

Spring微服务实战                                                   9787115481184  定价  ¥79.00

深入理解Spring Cloud与微服务构建                        9787115475220  定价  ¥69.00

微服务分布式构架开发实战                                     9787115475589  定价  ¥59.00

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

周立 (作者)  

书 号:978-7-121-34015-4

出版日期:2018-07-11

页 数:328

开 本:16(185*235)

出版状态:上市销售

维护人:张春雨

定价79元

作为一部帮助大家实现微服务架构落地的作品,《Spring Cloud与Docker微服务架构实战(第2版)》覆盖了微服务理论、微服务开发框架(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.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

目录xv

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

目录xvii

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

xviii 目录

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

目录xix

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

Spring微服务实战
微服务开发领域重磅作品 与《Spring实战》《Spring Boot实战》并称“Spring三剑客”
  • 定价  ¥79.00
  • 出版社: 人民邮电出版社
  • ISBN:9787115481184
  • 版次:1
  • 品牌:异步图书
  • 包装:平装
  • 开本:16开
  • 出版时间:2018-06-01
  • 用纸:胶版纸

编辑

适读人群 :本书适合拥有构建分布式应用程序的经验、拥有Spring的知识背景以及对学习构建基于微服务的应用程序感兴趣的Java开发人员阅读。对于希望使用微服务构建基于云的应用程序,以及希望了解如何将基于微服务的应用部署到云上的开发人员,本书也具有很好的学习参考价值。

微服务将代码分解为小型的、分布式的独立服务,这些服务需要深谋远虑和仔细设计。Spring Boot和Spring Cloud简化了微服务应用程序。就像Spring框架简化了企业级Java开发一样,Spring Boot移除了与编写基于REST的服务有关的样板代码。Spring Cloud提供了一套工具,用于微服务发现、路由以及将微服务部署到企业和云中。

本书教读者如何使用Java和Spring平台构建基于微服务的应用程序。在构建和部署第1个Spring Cloud应用程序时,读者将学习如何进行微服务设计。在本书中,精心挑选的真实案例展示了基于微服务的各种模式,这些模式用于配置、路由、扩展和部署服务。读者将了解Spring易于使用的工具,并看到其如何助力用微服务来增强和重构现有的应用程序。

本书主要内容

● 核心微服务设计原则。

● 使用Spring Cloud Config管理配置。

● 使用Spring、Hystrix和Ribbon实现客户端弹性。

● 使用Netflix Zuul进行智能路由。

● 部署Spring Cloud应用程序。

本书是为具有Java和Spring经验的开发人员编写的。

内容简介

本书以一个名为EagleEye的项目为主线,介绍云、微服务等概念以及Spring Boot和Spring Cloud等诸多Spring项目,并介绍如何将EagleEye项目一步一步地从单体架构重构成微服务架构,进而将这个项目拆分成众多微服务,让它们运行在各自的Docker容器中,实现持续集成/持续部署,并终自动部署到云环境(美亚)中。针对在重构过程中遇到的各种微服务开发会面临的典型问题(包括开发、测试和运维等问题),本书介绍了解决这些问题的核心模式,以及在实战中如何选择特定Spring Cloud子项目或其他工具解决这些问题。

本书适合拥有构建分布式应用程序的经验、拥有Spring的知识背景以及对学习构建基于微服务的应用程序感兴趣的Java开发人员阅读。对于希望使用微服务构建基于云的应用程序,以及希望了解如何将基于微服务的应用部署到云上的开发人员,本书也具有很好的学习参考价值。

作者简介

约翰·卡内尔(John Carnell)是一位知名云工程师,拥有20 年的Java 开发经验。他大部分时间都在使用AWS 平台构建基于电话的微服务。他的日常工作主要是设计和构建跨Java、Clojure 和Go 等多种技术平台的微服务。

目录

目录

第 1章 欢迎迈入云世界,Spring 1

1.1 什么是微服务 1

1.2 什么是Spring,为什么它与微服务有关 4

1.3 在本书中读者会学到什么 5

1.4 为什么本书与你有关 6

1.5 使用Spring Boot来构建微服务 6

1.6 为什么要改变构建应用的方式 10

1.7 云到底是什么 11

1.8 为什么是云和微服务 13

1.9 微服务不只是编写代码 14

1.9.1 核心微服务开发模式 15

1.9.2 微服务路由模式 16

1.9.3 微服务客户端弹性模式 17

1.9.4 微服务安全模式 18

1.9.5 微服务日志记录和跟踪模式 19

1.9.6 微服务构建和部署模式 20

1.10 使用Spring Cloud构建微服务 22

1.10.1 Spring Boot 23

1.10.2 Spring Cloud Config 23

1.10.3 Spring Cloud服务发现 24

1.10.4 Spring Cloud与Netflix Hystrix和Netflix Ribbon 24

1.10.5 Spring Cloud与Netflix Zuul 24

1.10.6 Spring Cloud Stream 24

1.10.7 Spring Cloud Sleuth 24

1.10.8 Spring Cloud Security 25

1.10.9 代码供应 25

1.11 通过示例来介绍Spring Cloud 25

1.12 确保本书的示例是有意义的 27

1.13 小结 28

第 2章 使用Spring Boot构建微服务 29

2.1 架构师的故事:设计微服务架构 31

2.1.1 分解业务问题 31

2.1.2 建立服务粒度 32

2.1.3 互相交流:定义服务接口 35

2.2 何时不应该使用微服务 36

2.2.1 构建分布式的复杂性 36

2.2.2 服务器散乱 36

2.2.3 应用程序的类型 36

2.2.4 数据事务和一致性 37

2.3 开发人员的故事:用SpringBoot和Java构建微服务 37

2.3.1 从骨架项目开始 37

2.3.2 引导Spring Boot应用程序:编写引导类 39

2.3.3 构建微服务的入口:Spring Boot控制器 40

2.4 DevOps工程师的故事:构建运行时的严谨性 44

2.4.1 服务装配:打包和部署微服务 46

2.4.2 服务引导:管理微服务的配置 47

2.4.3 服务注册和发现:客户端如何与微服务通信 48

2.4.4 传达微服务的“健康状况” 49

2.5 将视角综合起来 51

2.6 小结 52

第3章 使用Spring Cloud配置服务器控制配置 53

3.1 管理配置(和复杂性) 54

3.1.1 配置管理架构 55

3.1.2 实施选择 56

3.2 构建Spring Cloud配置服务器 58

3.2.1 创建Spring Cloud Config引导类 61

3.2.2 使用带有文件的Spring Cloud配置服务器 62

3.3 将Spring Cloud Config与Spring Boot客户端集成 64

3.3.1 建立许可证服务对Spring Cloud Config服务器的依赖 65

3.3.2 配置许可证服务以使用Spring Cloud Config 66

3.3.3 使用Spring Cloud配置服务器连接数据源 69

3.3.4 使用@Value注解直接读取属性 72

3.3.5 使用Spring Cloud配置服务器和Git 73

3.3.6 使用Spring Cloud配置服务器刷新属性 73

3.4 保护敏感的配置信息 75

3.4.1 下载并安装加密所需的Oracle JCE jar 75

3.4.2 创建加密密钥 76

3.4.3 加密和解密属性 76

3.4.4 配置微服务以在客户端使用加密 78

3.5 后的想法 79

3.6 小结 80

第4章 服务发现 81

4.1 我的服务在哪里 82

4.2 云中的服务发现 84

4.2.1 服务发现架构 84

4.2.2 使用Spring和Netflix Eureka进行服务发现实战 87

4.3 构建Spring Eureka服务 88

4.4 通过Spring Eureka注册服务 90

4.5 使用服务发现来查找服务 93

4.5.1 使用Spring DiscoveryClient查找服务实例 95

4.5.2 使用带有Ribbon功能的Spring RestTemplate调用服务 97

4.5.3 使用Netflix Feign客户端调用服务 98

4.6 小结 100

第5章 使用Spring Cloud和NetflixHystrix的客户端弹性模式 101

5.1 什么是客户端弹性模式 102

5.1.1 客户端负载均衡模式 103

5.1.2 断路器模式 103

5.1.3 后备模式 103

5.1.4 舱壁模式 104

5.2 为什么客户端弹性很重要 104

5.3 进入Hystrix 107

5.4 搭建许可服务器以使用Spring Cloud和Hystrix 107

5.5 使用Hystrix实现断路器 109

5.5.1 对组织微服务的调用超时 111

5.5.2 定制断路器的超时时间 112

5.6 后备处理 113

5.7 实现舱壁模式 115

5.8 基础进阶—微调Hystrix 118

5.9 线程上下文和Hystrix 122

5.9.1 ThreadLocal与Hystrix 122

5.9.2 HystrixConcurrencyStrategy实战 125

5.10 小结 129

第6章 使用Spring Cloud和Zuul进行服务路由 131

6.1 什么是服务网关 132

6.2 Spring Cloud和Netflix Zuul简介 133

6.2.1 建立一个Zuul Spring Boot项目 134

6.2.2 为Zuul服务使用Spring Cloud注解 134

6.2.3 配置Zuul与Eureka进行通信 135

6.3 在Zuul中配置路由 135

6.3.1 通过服务发现自动映射路由 136

6.3.2 使用服务发现手动映射路由 137

6.3.3 使用静态URL手动映射路由 140

6.3.4 动态重新加载路由配置 142

6.3.5 Zuul和服务超时 143

6.4 Zuul的真正威力:过滤器 144

6.5 构建第 一个生成关联ID的Zuul前置过滤器 147

6.6 构建接收关联ID的后置过滤器 155

6.7 构建动态路由过滤器 157

6.7.1 构建路由过滤器的骨架 159

6.7.2 实现run()方法 159

6.7.3 转发路由 161

6.7.4 整合 162

6.8 小结 163

第7章 保护微服务 164

7.1 OAuth2简介 165

7.2 从小事做起:使用Spring和OAuth2来保护单个端点 167

7.2.1 建立EagleEye OAuth2验证服务 167

7.2.2 使用OAuth2服务注册客户端应用程序 168

7.2.3 配置EagleEye用户 171

7.2.4 验证用户 172

7.3 使用OAuth2保护组织服务 175

7.3.1 将Spring Security和OAuth2 jar添加到各个服务 176

7.3.2 配置服务以指向OAuth2验证服务 176

7.3.3 定义谁可以访问服务 177

7.3.4 传播OAuth2访问令牌 180

7.4 JSON Web Token与OAuth2 183

7.4.1 修改验证服务以颁发JWT令牌 184

7.4.2 在微服务中使用JWT 188

7.4.3 扩展JWT令牌 189

7.4.4 从JWT令牌中解析自定义字段 191

7.5 关于微服务安全的总结 193

7.6 小结 195

第8章 使用Spring Cloud Stream的事件驱动架构 196

8.1 为什么使用消息传递、EDA和微服务 197

8.1.1 使用同步请求-响应方式来传达状态变化 198

8.1.2 使用消息传递在服务之间传达状态更改 199

8.1.3 消息传递架构的缺点 201

8.2 Spring Cloud Stream简介 202

8.3 编写简单的消息生产者和消费者 205

8.3.1 在组织服务中编写消息生产者 205

8.3.2 在许可证服务中编写消息消费者 210

8.3.3 在实际操作中查看消息服务 213

8.4 Spring Cloud Stream用例:分布式缓存 214

8.4.1 使用Redis来缓存查找 215

8.4.2 定义自定义通道 221

8.4.3 将其全部汇集在一起:在收到消息时清除缓存 222

8.5 小结 223

第9章 使用Spring Cloud Sleuth和Zipkin进行分布式跟踪 224

9.1 Spring Cloud Sleuth与关联ID 225

9.1.1 将Spring Cloud Sleuth添加到许可证服务和组织服务中 226

9.1.2 剖析Spring Cloud Sleuth跟踪 226

9.2 日志聚合与Spring Cloud Sleuth 227

9.2.1 Spring Cloud Sleuth与Papertrail实现实战 229

9.2.2 创建Papertrail账户并配置syslog连接器 230

9.2.3 将Docker输出重定向到Papertrail 232

9.2.4 在Papertrail中搜索Spring Cloud Sleuth的跟踪ID 234

9.2.5 使用Zuul将关联ID添加到HTTP响应 235

9.3 使用Open Zipkin进行分布式跟踪 237

9.3.1 添加Spring Cloud Sleuth和Zipkin依赖项 238

9.3.2 配置服务以指向Zipkin 238

9.3.3 安装和配置Zipkin服务器 239

9.3.4 设置跟踪级别 240

9.3.5 使用Zipkin跟踪事务 241

9.3.6 可视化更复杂的事务 243

9.3.7 捕获消息传递跟踪 244

9.3.8 添加自定义跨度 246

9.4 小结 248

第 10章 部署微服务 250

10.1 EagleEye:在云中建立核心基础设施 251

10.1.1 使用的RDS创建PostgreSQL数据库 253

10.1.2 在AWS中创建Redis集群 257

10.1.3 创建ECS集群 258

10.2 基础设施:部署EagleEye 262

10.3 构建和部署管道的架构 265

10.4 构建和部署管道实战 268

10.5 开始构建和部署管道:GitHub和Travis CI 270

10.6 使服务能够在Travis CI中构建 270

10.6.1 构建的核心运行时配置 273

10.6.2 安装预构建工具 275

10.6.3 执行构建 277

10.6.4 标记源代码 277

10.6.5 构建微服务并创建Docker镜像 279

10.6.6 将镜像推送到Docker Hub 279

10.6.7 在Amazon ECS中启动服务 280

10.6.8 启动平台测试 280

10.7 关于构建和部署管道的总结 282

10.8 小结 282

附录A 在桌面运行云服务 283

附录B OAuth2授权类型 291

深入理解Spring Cloud与微服务构建
全面讲解Spring Cloud基础组件 深入理解微服务原理 一站式构建微服务解决方案
方志朋 著
  • 定价  ¥69.00
  • 出版社: 人民邮电出版社
  • ISBN:9787115475220
  • 版次:1
  • 品牌:异步图书
  • 包装:平装
  • 开本:16开
  • 出版时间:2018-03-01
  • 用纸:胶版纸

编辑

适读人群 :本书既适合Spring Cloud初学者入门使用,又适合正在做微服务实践的架构师或打算实施微服务的团队作为参考用书,同时也可作为高等院校计算机相关的师生用书和培训学校的教材。

1. 深入浅出讲解Spring Cloud组件、开发工具、框架等知识点。 
2. 使读者全面理解微服务的构建原理。 
3. 实例丰富,解释清晰,易于读者真正理解原理,并学以致用。 
4. 深入讲解Spring Cloud OAuth2,直击市场需求痛点。

内容简介

本书共分16章,全面涵盖了Spring Cloud构建微服务相关的知识点。第1、2章详细介绍了微服务架构和Spring Cloud。第3、4章讲解了用Spring Cloud构建微服务的准备工作。第5~12章以案例为切入点,讲解了Spring Cloud构建微服务的基础组件,包括Eureka、Ribbon、Feign、Hystrix、Zuul、Config、Sleuth、Admint等组件。第13~15章讲述了使用Spring Cloud OAuth2来保护微服务的相关知识。第16章用一个综合案例,全面讲解了如何使用Spring Cloud构建微服务,可以作为实际开发的样例工程。

作者简介

作者方志朋,毕业于武汉理工大学硕士学位。 CSDN博客专家、Spring Cloud中国社区联合创始人。对技术有着狂热的追求,活跃于各大技术社区,包括CSDN、GitHub、掘金、简书、Spring Cloud中国社区。 

精彩书评

方志朋在Spring Cloud中国社区具有广泛的知名度,他为社区中的Spring Cloud企业使用者和爱好者提供热心的帮助,其扎实的技术功底和孜孜不倦的钻研精神给大家留下了深刻的印象。希望本书的出版能为广大读者提升微服务的架构能力带来裨益。

——Spring Cloud中国社区合伙人 任浩军

Spring Cloud可以说是2017年度主流的微服务开发框架之一。从单体架构到分布式架构,再到微服务架构,每个技术团队都在寻求一条变革的道路。作者结合架构演进的历史,从全局到细节详细阐述了Spring Cloud架构的特点和优势,以及Spring Cloud各个组件的功能原理和使用方式。这是一本可以让你从零开始学习Spring Cloud的书,也是一本可以让你了解架构的书。如果你想学习Spring Cloud,那么,请从这本书开始!

——宜信架构师 梁鑫

Spring Cloud为微服务架构提供了一种解决方案,因提供众多且功能强大的模块而成为当前热门的微服务框架。本书以参考用例和源码解读为切入点,由浅入深地对Spring Cloud进行了细致的讲解,让读者能够了解Spring Cloud的内部原理,并在实际开发中运用Spring Cloud。新手完全可以通过此书入门,有工作经验的读者研读此书后也会有不一样的收获,强烈本书!

——Spring Cloud中国社区成员 唐旺辰

目录

第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 服务配置的统一管理 19


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 Kubernetes简介 26


2.6 Spring Could与Kubernetes比较 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 Config Server从本地读取配置


文件 137


10.1.1 构建Config Server 137


10.1.2 构建Config Client 138


10.2 Config Server从远程Git仓库读取


配置文件 140


10.3 构建高可用的Config Server 141


10.3.1 构建Eureka Server 141


10.3.2 改造Config Server 142


10.3.3 改造Config 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监控Spring Cloud微服务 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 构建config-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


微服务分布式构架开发实战
龚鹏 著
  • 定价  ¥59.00
  • 出版社: 人民邮电出版社
  • ISBN:9787115475589
  • 版次:1
  • 品牌:异步图书
  • 包装:平装
  • 开本:16开
  • 出版时间:2018-03-01
  • 用纸:胶版纸

编辑

本书语言简洁,内容丰富,适合具备初级Java后端开发能力的开发人员,大中专相关师生,网站培训班学员,以前拥有单工程开发经验并且想尝试分布式微服务架构的人员。

? Java工程师

? 初级架构师

? 大中专院校相关师生

? Java培训班学员

? 独立开发者与自学读者

内容简介

随着第三方框架的逐渐完善,实施微服务架构的开发成本越来越低,分布式架构成为主流势不可挡。一个完善的架构或中包含了许多的知识点,而每一个知识点则又可以引出非常多的内容,过度地专注于细节反而会拖慢达成目标的步伐。为了更快地实施微服务,本书基于开源且稳定的第三方工具,介绍如何构建一个庞大且复杂的分布式,用于满足项目中的实际需求。

每一个工具库为了适应更丰富的使用场景,通常都会把部分参数以配置文件的方式暴露出来,同时提供用于开发环境的默认配置。本书基于快速使用为主线,尽可能多地讲解配置参数的意义及它们之间的关系,帮助读者在掌握足够多的知识点后,建立起对微服务分布式架构的认知,以便为探求更深层次的知识点做好铺垫。

本书适合Java工程师、初级架构师、大中专院校相关师生、Java培训班学员及独立开发者与自学读者使用。

每一个工具库为了适应更丰富的使用场景,通常都会把部分参数以配置文件的方式暴露出来,同时提供用于开发环境的默认配置。本书基于快速使用为主线路,尽可能多地讲解配置参数的意义及之间的关系。在掌握足够多的知识点后建立起对微服务分布式架构的认知,以便为探求更深层次的知识点做好铺垫。

作者简介

龚鹏

全栈GEEK,高中时期开始自学Java,专注于互联网,具备软件开发、美术设计、产品策划等领域知识。匠工科技创始人,曾服务奥美互动、百度、中青旅,负责开发车联网设计、互联网彩票、电子商务等。

目录

1 微服务介绍 1

1.1 什么是微服务架构 2

1.2 垂直应用与微服务 2

1.3 实现一个简单的微服务框架 3

1.3.1 公共接口 4

1.3.2 服务端 4

1.3.3 客户端 7

1.3.4 完善框架 8

1.4 主流微服务框架介绍 9

1.4.1 Dubbo 9

1.4.2 Spring Cloud 10

2 模块拆分 12

2.1 拆分逻辑 13

2.2 单模块 14

2.3 基础模块 14

2.4 复杂模块 15

3 Spring Boot 16

3.1 目录结构 17

3.2 主要文件 18

3.3 编辑器集成 18

4 Dubbo 20

4.1 注册中心 21

4.2 接口工程 22

4.3 服务端 23

4.4 消费方 28

4.5 网关 30

4.6 监控中心 33

4.7 服务管理 35

4.8 负载均衡 36

4.9 服务降级 37

4.10 集群容错 38

5 Spring Cloud 40

5.1 注册中心 41

5.2 注册服务 44

5.3 调用服务 45

5.3.1 Ribbon 46

5.3.2 Feign 49

5.4 Zuul网关 51

5.5 Hystrix 断路器 54

5.5.1 Ribbon 54

5.5.2 Fegin 57

5.6 服务监控 58

5.7 应用监控 61

5.8 熔断器监控 62

5.8.1 单应用的熔断数据 63

5.8.2 使用Turbine聚合数据 64

5.8.3 Cloud Admin整合Turbine 65

5.9 统一管理配置文件 66

6 数据持久化 70

6.1 Spring Data MySQL 71

6.1.1 依赖与配置 71

6.1.2 实体映射 72

6.1.3 Repository 76

6.1.4 JdbcTemplate 79

6.1.5 事务管理 80

6.2 Spring Data MongoDB 81

6.2.1 依赖与配置 81

6.2.2 实体映射 82

6.2.3 Repository 83

6.2.4 MongoTemplate 84

6.3 Spring Data ElasticSearch 85

6.3.1 基本概念 85

6.3.2 安装与运行 86

6.3.3 基于HTTP交互 87

6.3.4 配置分词器 91

6.3.5 依赖与配置 94

6.3.6 实体映射 94

6.3.7 Repository 95

6.3.8 ElasticsearchTemplate 96

6.4 TCC 分布式事务 98

6.5 Spring Data Redis 100

6.5.1 安装运行 100

6.5.2 依赖与配置 101

6.5.3 缓存支持 102

6.5.4 RedisTemplate 106

6.5.5 全局锁 107

7 表单验证 110

8 定时任务 113

8.1 Spring Task 单机定时任务 114

8.2 Cron 表达式 114

8.3 QuartZ 分布式定时任务 116

9 分布式会话 122

10 消息队列 124

10.1 安装及配置RabbitMQ 125

10.2 配置及使用 128

11 构建Web应用 130

12 异常处理 133

13 安全认证 139

13.1 OAuth2.0 协议介绍 140

13.2 授权模式 141

13.3 在Dubbo中使用OAuth 2.0 142

13.4 在Spring Cloud 中

使用OAuth 2.0 151

13.4.1 授权中心 151

13.4.2 服务模块配置 154

13.4.3 网关配置 157

13.4.4 测试运行 159

14 日志管理 161

14.1 Spring Boot 日志 162

14.1.1 日志格式 162

14.1.2 输出到文件 163

14.1.3 扩展配置 163

14.2 分布式日志管理 166

14.2.1 ELK 搭建 167

14.2.2 Spring Boot 配置 169

15 热部署 171

16 接口文档管理 173

16.1 Dubbo中使用Swagger2 174

16.2 Spring Cloud中使用

Swagger2 178

16.2.1 微服务模块配置 179

16.2.2 网关模块配置 181

17 Nexus私库 184

17.1 Nexus 安装 185

17.2 从Nexus私库下载jar包 187

17.3 上传jar包到Nexus私库 189

18 发布 191

18.1 Jenkins 安装配置 192

18.2 构建任务 194

19 分布式架构总结 201

每一个工具库为了适应更丰富的使用场景,通常都会把部分参数以配置文件的方式暴露出来,同时提供用于开发环境的默认配置。本书基于快速使用为主线路,尽可能多地讲解配置参数的意义及之间的关系。在掌握足够多的知识点后建立起对微服务分布式架构的认知,以便为探求更深层次的知识点做好铺垫。