首页>参考读物>计算机科学与技术>计算机网络

Spring Cloud微服务架构进阶
作者 : 朱荣鑫 张天 黄迪璇 编著
出版日期 : 2018-09-20
ISBN : 978-7-111-60868-4
定价 : 89.00元
扩展资源下载
扩展信息
语种 : 简体中文
页数 : 428
开本 : 16
原书名 :
原出版社:
属性分类: 店面
包含CD : 无CD
绝版 : 未绝版
图书简介

本书重点介绍微服务架构的Spring Cloud框架,在实践的基础上进行用法的拓展与相关组件的源码分析,包括:服务发现、负载均衡、断路、声明式HTTP调用客户端、网关、分布式配置中心、安全权限、消息总线等组件。本书适合Java开发人员,特别适合正在进行微服务化改造的开发人员、架构师,在改造过程中进行参考与进阶应用。

图书特色

全面系统地介绍Spring Cloud及其在微服务架构中的应用。
从基础应用到源码分析,再到进阶应用,提供了大量案例,可帮助读者快速进入实战。

图书前言

最近几年,随着DevOps和以Docker为主的容器技术的发展,云原生应用架构和微服务变得流行起来。云原生包含的内容很多,如DevOps、持续交付、微服务、敏捷等,本书关注的是其中的微服务。在大概三年前,我在互联网上查找关于微服务落地的方案,搜索到了Spring社区推出的Spring Cloud项目,在那个时候就开始关注Spring Cloud,发现Spring Cloud基于Spring Boot,引入依赖后开箱即用,使用非常方便。当时Spring Cloud中的组件数量和成熟度远不如现今,Spring Cloud的版本为Brixton。后来我在项目中尝试使用Spring Cloud,主要用了Spring Cloud Config和Spring Cloud Stream,使用过程中发现这两个组件在易用性、功能性等各方面都令人满意,慢慢地便在项目中铺开使用。
在应用Spring Cloud的过程中,我见证了它的不断完善和丰富。在其间也遇到了一些“坑”,通过源码分析才解决了一些问题。Spring Cloud并没有重复造轮子,这些组件有些是Spring Cloud的全新项目,如Spring Cloud Gateway、Spring Cloud Config等,还有很多是基于业界现有的开源组件,如Netflix的合集Netflix Ribbon等。
在2017年下半年的时候,我开始对每个组件进行梳理,深入到每个组件的实现原理和源码。毕竟Spring Cloud中包含了众多组件,我断断续续花了半年时间把各个组件大概梳理了一遍,没想到这些积累成为了本书的写作基础。
本书详细介绍Spring Cloud相关组件及其在微服务架构中的应用。全书共13章,第1章介绍微服务架构相关的基本概念;第2章介绍Spring Cloud中包含的组件以及Spring Cloud约定的上下文;第3章介绍Spring Cloud的基础Spring Boot,包括如何构建一个Spring Boot服务、Spring Boot的配置等;第4~13章详细讲解Spring Cloud组件,包括Eureka(服务注册与发现)、OpenFeign(声明式RESTful客户端)、Hystrix(断路器)、Ribbon(客户端负载均衡器)、Gateway(API网关)、Config(配置中心)、Stream(消息驱动)、Bus(消息总线)、Security(认证与授权)、Sleuth(服务链路追踪)。本书的目标是深入到Spring Cloud组件实现的技术内幕,并介绍了进阶应用的思路,为读者提供使用Spring Cloud进行微服务架构实践的参考。
本书在介绍Spring Cloud中的重要组件时,从基础应用的案例着手,尽可能将这类组件的设计思路和实现原理讲清楚,以帮助读者加深理解,并结合源码讲解组件的实现原理,最后还介绍了组件的进阶功能与应用。本书适合具有一些Java基础的开发人员,特别适合正在尝试微服务实践并想要深入了解Spring Cloud各个组件原理的开发人员和架构师。书中的很多案例都提供了源代码,可以随时下载,下载地址为:
github地址:https://github.com/Advanced-SpringCloud/cloud-book
gitee地址:https://gitee.com/Advanced-SpringCloud/cloud-book
本书最终由三个人共同完成,具体分工如下:第1、8、9、11、13章由朱荣鑫编写,第2、5、7、10章由张天编写,第3、4、6、12章由黄迪璇编写,全书由朱荣鑫统稿。能够完成本书需要感谢很多人,丁二玉老师在本书的撰写过程中提供了很多内容组织方面的建议,花了很多休息时间帮助审稿,非常感谢丁老师的大力帮助;感谢笔者所在的公司,一个年轻而富有活力的公司,为我们提供了很好的平台,从而积累了很多微服务架构实践的经验;感谢机械工业出版社的吴怡编辑及其他工作人员,为本书投入了很多精力。由于时间有限,书中难免存在一些问题,请读者不吝赐教。

朱荣鑫
2018年5月

上架指导

计算机\网络

封底文字

本书从当前流行的微服务架构理论出发,详细介绍了Spring Cloud的每一个核心模块,并提供了大量的源码讲解,以及各个核心模块和主要功能的使用方法,理论与实践相结合,可以作为微服务架构技术选型或实施的首选指导用书。
—— 李艳鹏,某互联网金服高级技术专家,
《分布式服务架构:原理、设计与实战》《可伸缩服务架构:框架与中间件》作者
本书涵盖了Spring Cloud核心组件的入门知识、源码分析和使用进阶,由浅入深,非常适合那些想深入学习的人。同时本书也涵盖了新的版本和一些新的组件,比如Spring Boot 2.0、Spring Cloud Gateway等,尤其是 Spring Cloud Gateway,因为正好我们也实现了一个企业级的网关,有很多做法不谋而合,比如限流算法和实现,因此读起来颇有同感。另外Spring Cloud Security是Spring体系里面非常重要、却又很难理解的内容,本书对这部分做了深入解析,值得每个想基于Spring Security 实现安全的人多多揣摩。
—— 王天青,上海道客网络科技有限公司(Daocloud)首席架构师
本书由浅入深,详细地介绍了Spring Cloud微服务架构中的核心概念和相关组件,并提供了大量的实战案例以及源码分析。对于Spring Cloud的初学者和希望更深一步研究的读者,都有很高的参考价值!
—— 田守枝,美团点评资深中间件专家,技术博客www.tianshouzhi.com
在Spring Cloud架构体系出现之前,市面上常见的微服务框架和组件都是零散的,很多中小型公司想要实现微服务架构体系就需要做很多方面的工作,成本和工作量都是巨大的。而Spring Cloud的出现为行业提供了一站式解决方案,解决了不少公司的架构选型和维护难题。本书从使用和原理的角度出发,以大量实战案例为主线,对Spring Cloud进行了深入且全面的介绍,推荐每一位开发者与架构师收藏和学习。
—— 程超,中间件负责人,资深架构师,《深入分布式缓存》联合作者
本书使我对Spring Cloud组件的原理有了更加深入的理解。当下,很多企业都非常关注微服务的落地,而 Spring Cloud 的出现为其提供了一套完整的解决方案,这本书可以为读者提供很好的操作指南。
—— 梁桂钊(公众号:服务端思维),阿里巴巴高级开发工程师

图书目录

前言
第1章 微服务架构介绍1
1.1 微服务架构的出现1
1.1.1 单体应用架构1
1.1.2 SOA架构2
1.1.3 微服务架构3
1.2 微服务架构的流派5
1.3 云原生与微服务9
1.4 本章小结12
第2章 Spring Cloud总览13
2.1 Spring Cloud架构13
2.2 Spring Cloud特性16
2.2.1 Spring Cloud Context:应用上下文16
2.2.2 Spring Cloud Commons:公共抽象19
2.3 本章小结21
第3章 Spring Cloud的基础:Spring Boot22
3.1 Spring Boot简介22
3.2 构建一个微服务24
3.3 Spring Boot配置文件29
3.3.1 默认配置文件29
3.3.2 外部化配置29
3.3.3 YAML30
3.3.4 自动载入外部属性到Bean30
3.3.5 多Profile31
3.3.6 Starter32
3.3.7 自制一个Starter32
3.3.8 Actuator36
3.4 本章小结38
第4章 服务注册与发现:Eureka39
4.1 基础应用40
4.1.1 Eureka简介40
4.1.2 搭建Eureka服务注册中心40
4.1.3 搭建Eureka服务提供者42
4.1.4 搭建Eureka服务调用者43
4.1.5 Eureka服务注册和发现44
4.1.6 Consul的简单应用46
4.2 服务发现原理48
4.3 Eureka Client源码解析49
4.3.1 读取应用自身配置信息50
4.3.2 服务发现客户端52
4.3.3 拉取注册表信息56
4.3.4 服务注册61
4.3.5 初始化定时任务62
4.3.6 服务下线68
4.4 Eureka Server源码解析70
4.4.1 服务实例注册表70
4.4.2 服务注册72
4.4.3 接受服务心跳74
4.4.4 服务剔除75
4.4.5 服务下线77
4.4.6 集群同步78
4.4.7 获取注册表中服务实例信息82
4.5 进阶应用84
4.5.1 Eureka Instance和Client的元数据84
4.5.2 状态页和健康检查页端口设置85
4.5.3 区域与可用区85
4.5.4 高可用性服务注册中心86
4.6 本章小结87
第5章 声明式RESTful客户端:Spring Cloud OpenFeign88
5.1 基础应用88
5.1.1 微服务之间的交互88
5.1.2 OpenFeign简介89
5.1.3 代码示例89
5.2 源码分析91
5.2.1 核心组件与概念91
5.2.2 动态注册BeanDefinition92
5.2.3 实例初始化98
5.2.4 函数调用和网络请求107
5.3 进阶应用111
5.3.1 Decoder与Encoder的定制化111
5.3.2 请求/响应压缩112
5.4 本章小结113
第6章 断路器:Hystrix114
6.1 基础应用114
6.1.1 RestTemplate与Hystrix115
6.1.2 OpenFeign与Hystrix117
6.2 Hystrix原理118
6.2.1 服务雪崩118
6.2.2 断路器119
6.2.3 服务降级操作120
6.2.4 资源隔离121
6.2.5 Hystrix实现思路122
6.3 源码解析123
6.3.1 封装HystrixCommand123
6.3.2 HystrixCommand类结构129
6.3.3 异步回调执行命令129
6.3.4 异步执行命令和同步执行命令137
6.3.5 断路器逻辑137
6.3.6 资源隔离143
6.3.7 请求超时监控148
6.3.8 失败回滚逻辑150
6.4 进阶应用152
6.4.1 异步与异步回调执行命令152
6.4.2 继承HystrixCommand153
6.4.3 请求合并157
6.5 本章小结161
第7章 客户端负载均衡器:Spring Cloud Netflix Ribbon162
7.1 负载均衡162
7.2 基础应用163
7.3 源码分析165
7.3.1 配置和实例初始化165
7.3.2 与OpenFeign的集成167
7.3.3 负载均衡器LoadBalancerClient171
7.3.4 ILoadBalancer173
7.3.5 负载均衡策略实现177
7.4 进阶应用184
7.4.1 Ribbon API184
7.4.2 使用Netty发送网络请求185
7.4.3 只读数据库的负载均衡实现186
7.5 本章小结187
第8章 API网关:Spring Cloud Gateway189
8.1 Spring Cloud Gateway介绍189
8.2 基础应用190
8.2.1 用户服务191
8.2.2 网关服务192
8.2.3 客户端的访问195
8.3 源码解析195
8.3.1 初始化配置196
8.3.2 网关处理器197
8.3.3 路由定义定位器202
8.3.4 路由定位器205
8.3.5 路由断言208
8.3.6 网关过滤器216
8.3.7 全局过滤器227
8.3.8 API端点234
8.4 应用进阶235
8.4.1 限流机制235
8.4.2 熔断降级238
8.4.3 网关重试过滤器240
8.5 本章小结241
第9章 配置中心:Spring Cloud Config243
9.1 基础应用244
9.1.1 配置客户端244
9.1.2 配置仓库245
9.1.3 服务端246
9.1.4 配置验证248
9.1.5 配置动态更新249
9.2 源码解析250
9.2.1 配置服务器251
9.2.2 配置客户端261
9.3 应用进阶267
9.3.1 为Config Server配置多个repo268
9.3.2 客户端覆写远端的配置属性268
9.3.3 属性覆盖269
9.3.4 安全保护269
9.3.5 加密解密270
9.3.6 快速响应失败与重试机制272
9.4 本章小结272
第10章 消息驱动:Spring Cloud Stream274
10.1 消息队列274
10.2 基础应用276
10.2.1 声明和绑定通道276
10.2.2 自定义通道276
10.2.3 接收消息276
10.2.4 配置278
10.3 源码分析278
10.3.1 动态注册BeanDefinition279
10.3.2 绑定服务282
10.3.3 获取绑定器284
10.3.4 绑定生产者289
10.3.5 消息发送的流程291
10.3.6 StreamListener注解的处理293
10.3.7 绑定消费者298
10.3.8 消息的接收304
10.4 进阶应用306
10.4.1 Binder For RocketMQ306
10.4.2 多实例311
10.4.3 分区311
10.5 本章小结313
第11章 消息总线:Spring Cloud Bus314
11.1 基础应用314
11.1.1 配置服务器315
11.1.2 配置客户端316
11.1.3 结果验证316
11.2 源码解析318
11.2.1 事件的定义与事件监听器319
11.2.2 消息的订阅与发布326
11.2.3 控制端点328
11.3 应用进阶329
11.3.1 在自定义的包中注册事件329
11.3.2 自定义监听器330
11.3.3 事件的发起者331
11.4 本章小结332
第12章 认证与授权:Spring Cloud Security333
12.1 基础应用333
12.1.1 OAuth2简介334
12.1.2 JWT336
12.1.3 搭建授权服务器338
12.1.4 配置资源服务器341
12.1.5 访问受限资源344
12.2 整体架构346
12.3 源码解析348
12.3.1 安全上下文349
12.3.2 认证350
12.3.3 授权357
12.3.4 Spring Security中的过滤器与拦截器361
12.3.5 授权服务器372
12.3.6 资源服务器387
12.3.7 令牌中继机制394
12.4 进阶应用395
12.4.1 Spring Security定制395
12.4.2 OAuth2定制399
12.4.3 SSO单点登录403
12.5 本章小结406
第13章 服务链路追踪:Spring Cloud Sleuth407
13.1 链路监控组件简介407
13.2 基础应用410
13.2.1 特性411
13.2.2 项目准备411
13.2.3 Spring Cloud Sleuth独立实现414
13.2.4 集成Zipkin414
13.3 本章小结420

教学资源推荐
作者: (美)Behrouz A.Forouzan 著
作者: 常晋义 何世明 赵秀兰
作者: Grigoris Antoniou;Frank van Harmelen
参考读物推荐
作者: 杨保华 戴王剑 曹亚仑 编著
作者: 大学霸IT达人 编著
作者: Harley Hahn