荐书|Spring Cloud 微服务架构进阶
徐妈说: 我与荣鑫相识于与一次 SpringCloud 的技术交流,没想到在一年之后的现在,他的这本《Spring Cloud 微服务架构进阶》就已经问世了。关于 Spr...
徐妈说:
我与荣鑫相识于与一次 SpringCloud 的技术交流,没想到在一年之后的现在,他的这本《Spring Cloud 微服务架构进阶》就已经问世了。关于 SpringCloud 这个技术栈,我曾与 DD(翟永超)交流过,并持相同的观点:对于经验丰富的读者,可以直接上手官方文档,因为 SpringCloud 的迭代速度实在太快了,DD 的书是基于 D 版本编写,荣鑫的书是基于 F 版本编写,这两本书的问世也不过间隔一年,而特性变更却不少。对于有如下需求的读者,我向你推荐此书
想要了解 SpringCloud 新版本的特性
对 SpringCloud 的架构有一个整体的认识,看看别人从文档中整理出了哪些关键点
SpringCloud 的源码解析
前面的话
我今年年初的时候,筹划了一本技术书籍,即为这篇文章的标题《Spring Cloud 微服务架构进阶》。今天正式开始预售了,年初到现在正好十个月,实在不易。写这篇文章胡乱谈谈技术之外的一些关于写书的琐事吧。
缘由
写这本书有一些机缘巧合,去年有几个出版社的编辑通过我博客上的邮箱,发邮件和我联系。可能是因为微服务这几年确实很火吧,编辑们建议我写一本关于微服务的书。当时一听而过,并没有在意(编辑们也是广撒网,不能当真认为自己的水平达到了),更主要是感觉自己的文笔很菜,技术就那样,根本没什么兴趣。不过坚持写博客确实是一个好的习惯,特别是原创的内容更有价值。笔者的博客知名度很低,但是通过公众号的方式传播,也能收获一些反馈,逐渐增强了我的信心(可能是已经膨胀了吧)。一直到去年年底的时候,觉得自己可以在技术方面更加深入,所以选择了微服务架构的流行组合框架Spring Cloud作为本书的内容,打算试试写本书。
关于内容
接触Spring Cloud还是挺早的了,算是早期关注者吧,之后一直在项目中有实践和应用。相比于刚出来之前,Spring Cloud已经完善了太多,通过整合现有的开源框架和Spring社区自己开发的一部分组件,使得Spring Cloud功能越来越强大。Spring Cloud使用和整合单个组件还比较简单,但是在微服务的实践中,要求我们对这些基础的组件有更深的了解才行。在平时的应用中,我会去了解和学习各个组件的实现原理,虽然没有特别细致,但是也对其中的主要部分比较熟悉。
关于这方面的书籍,其实已经有DIDI(翟永超)的Spring Cloud微服务实战
和周立Spring Cloud与Docker微服务架构实战
等书籍,写得时间比较早,内容质量也挺高了。笔者实在不敢谈超越,然而技术的发展和迭代很快,Spring Cloud版本迭到了Finchley
,基于的Spring Boot版本已经是2.x了(2.x已经基于Spring 5),相对来说,好多组件的实现和用法方面变化还是很大。这本《Spring Cloud 微服务架构进阶》基于最新的Finchley
,详细介绍了微服务架构中涉及到的主要Spring Cloud组件,配合基础应用的案例介绍实现原理。本书适合所有的Java开发者,特别希望能为从事微服务开发和架构的读者提供一些帮助。
合作
本书是由三位作者共同完成的,另外两位:@Randy
和@CANGWU
都是非常优秀的大佬,具体的介绍可以通过购买本书(硬广,hh)。
写书是一件比较耗费时间和精力的事情,决定做这件事的时候,深知以一人之力很难写完和写好,因素还挺多(能力、时间等)。团队合作的力量是强大的,于是约上另外了两位厉害的同学,我们开始了分工合作完成书稿,相互之间取长补短。技术书的书写整体上不是很难,每个功能组件按照基础应用案例引出实现原理的讲解。在这个过程中,有些细节还是值得深入了解的,加深了自己的一些理解,也学习到了不少。
其实书稿的初稿在五月底就完成了,后来作者之间互相审阅,并邀请了几位业界大佬帮忙审阅,编辑也提出了很多修改的建议,来来回回修改花了一个多月。其间也在等待Finchley
的release版本发布,刚开始写的时候还是里程碑(Milestone不太稳定)版本,这当中比较痛苦的就是Milestone到release版本会有不少变化,如Spring Cloud Gateway中的过滤器、路由断言在不断增加和部分重构。所以当正式版出来之后,三位作者还花了不少时间去对比之前的实现差异,及时修正了一些问题。到了七月底才正式定稿,吴怡编辑在定稿之后也是加紧进行了修订排版等后续工作,深表感谢。
目录
全书共十三章,纸质版428页。介绍一下本书的目录:
第 1 章 微服务架构介绍
1.3.1 云原生
1.3.2 The Twelve Factors
1.3.3 容器化
1.3.4 DevOps
1.3.5 面向微服务
1.2.1 ZeroC IceGrid
1.2.2 基于消息队列
1.2.3 Docker Swarm
1.2.4 Spring Cloud
1.1.1 单体应用
1.1.2 SOA 架构
1.1.3 微服务架构1.1 微服务的出现
1.2 微服务架构的流派
1.3 云原生与微服务
1.4 本章小结
第 2 章 Spring Cloud 介绍
2.2.1 Spring Cloud 上下文
2.2.2 Spring Cloud Commons: 公共抽象
2.1.1 版本说明
2.1.2 Spring Cloud 组成
2.1 Spring Cloud 总览
2.2 Spring Cloud 特性
2.3 本章小结
第 3 章 Spring Cloud 的基础:Spring Boot
3.4.1 默认配置文件
3.4.2 外部化配置
3.4.3 YAML
3.4.4 自动载入外部属性到 Bean
3.4.5 多 profile
3.4.6 Starters
3.4.7 自制一个 Starter
3.4.8 Actuator
3.3.1 IDEA 生成
3.3.2 initial 生成
3.1.1 Spring Boot 2.0
3.1.2 Spring Boot 与 Spring Cloud
3.1 Spring Boot 简介
3.2 Spring Boot 核心特性
3.3 构建一个微服务
3.4 Spring Boot 配置文件
3.5 本章小结
第 4 章 服务注册与发现:Eureka
4.5.1 Eureka Instance 和 Client 的元数据
4.5.2 状态页和健康检查页端口设置
4.5.3 Region 与 Zone
4.5.4 高可用性服务注册中心
4.4.1 服务实例注册表
4.4.2 服务注册
4.4.3 接受服务心跳
4.4.4 服务剔除
4.4.5 服务下线
4.4.6 集群同步
4.4.7 注册表拉取
4.5.8 自我保护
4.3.1 读取应用自身配置信息
4.3.2 服务发现客户端
4.3.3 拉取注册表信息
4.3.4 服务注册
4.3.5 初始化定时任务
4.3.6 服务下线
4.2.1 核心架构图
4.1.1 Eureka 简介
4.1.2 搭建 Eureka 服务注册中心
4.1.3 搭建 Eureka 服务提供者
4.1.4 搭建 Eureka 服务调用者
4.1.5 Eureka 服务注册和发现
4.1.6 Consul 的简单应用
4.1 基础应用
4.2 服务发现原理
4.3 Eureka Client 源码解析
4.4 Eureka Server 源码解析
4.5 进阶应用
4.6 本章小结
第 5 章 声明式 Restful 网络客户端:Spring Cloud OpenFeign
5.3.1 Decoder 与 Encoder 的自定制化
5.3.2 请求/响应压缩
5.2.1 核心组件与概念
5.2.2 动态注册 BeanDefinition
5.2.3 实例初始化
5.2.4 函数调用和网络请求
5.1.1 微服务之间的交互
5.1.2 OpenFeign 简介
5.1.3 代码示例
5.1 基础应用
5.2 源码分析
5.3 进阶应用
5.4 本章小结
第 6 章 断路器:Hystrix
6.4.1 核心配置讲解
6.4.2 异步与异步回调执行命令
6.4.3 继承 HystrixCommand
6.4.4 请求合并
6.4.5 Hystrix 仪表盘
6.3.1 封装 HystrixCommand
6.3.2 HystrixCommand 类结构
6.3.3 异步回调执行命令
6.3.4 异步执行命令和同步执行命令
6.3.5 断路器逻辑
6.3.6 资源隔离
6.3.7 请求超时监控
6.3.8 失败回滚逻辑
6.2.1 服务雪崩
6.2.2 断路器
6.2.3 服务降级操作
6.2.4 资源隔离
6.2.5 Hystrix 实现思路
6.1.1 RestTemplate 与 Hystrix
6.1.2 Feign 与 Hystrix
6.1 基础应用
6.2 Hystrix 原理
6.3 源码解析
6.4 进阶应用
6.5 本章小结
第 7 章 客户端负载均衡器:Spring Cloud Netflix Ribbon
7.4.1 Ribbon API
7.4.2 使用 Netty 发送网络请求
7.4.3 只读数据库的负载均衡实现
7.3.1 配置和实例初始化
7.3.2 与 OpenFeign 的集成
7.3.3 负载均衡器 LoadBalancerClient
7.3.4 ILoadBalancer
7.3.5 负载均衡策略实现
7.1 负载均衡
7.2 基础应用
7.3 源码分析
7.4 进阶应用
7.5 本章小结
第 8 章 API 网关:Spring Cloud Gateway
8.4.1 限流机制
8.4.2 熔断降级
8.4.3 网关重试过滤器
8.3.1 初始化配置
8.3.2 网关处理器
8.3.3 路由定义定位器
8.3.4 路由定位器
8.3.5 路由断言
8.3.6 网关过滤器
8.3.7 全局过滤器
8.3.8 API 端点
8.2.1 用户服务
8.2.2 网关服务
8.2.3 客户端的访问
8.1 Spring Cloud Gateway 介绍
8.2 基础应用
8.3 源码解析
8.4 应用进阶
8.5 本章小结
第 9 章 配置中心:Spring Cloud Config
9.3.1 为 config Server 配置多个 repo
9.3.2 客户端覆写远端的配置属性
9.3.3 属性覆盖
9.3.4 安全保护
9.3.5 加密解密
9.3.6 快速响应失败与重试机制
9.2.1 配置服务器
9.2.2 配置客户端
9.1.1 配置客户端
9.1.2 配置仓库
9.1.3 服务端
9.1.4 配置验证
9.1.5 配置动态更新
9.1 基础应用
9.2 源码解析
9.3 应用进阶
9.4 本章小结
第 10 章 消息驱动:Spring Cloud Stream
10.4.1 Binder For RocketMQ
10.4.2 多实例
10.4.3 分区
10.3.1 动态注册 BeanDefinition
10.3.2 绑定服务
10.3.3 获取绑定器
10.3.4 绑定 Producer
10.3.5 消息发送的流程
10.3.6 StreamListener 注解的处理
10.3.7 绑定 Consumer
10.3.8 消息的接收
10.2.1 声明和绑定 Channels
10.2.2 自定义通道
10.2.3 接收消息
10.2.4 配置
10.1.1 消息队列常用组件
10.1 消息队列
10.2 基础应用
10.3 源码分析
10.4 进阶应用
10.5 本章小结
第 11 章 消息总线:Spring Cloud Bus
11.3.1 在自定义的包中注册事件
11.3.2 自定义监听器
11.3.3 事件的发起者
11.2.1 事件的定义与事件监听器
11.2.2 消息的订阅与发布
11.2.3 控制端点
11.1.1 配置服务器 Config-Server
11.1.2 配置客户端 Config-Client
11.1.3 结果验证
11.1 基础应用
11.2 源码解析
11.3 应用进阶
11.4 本章小结
第 12 章 认证与授权:Spring Cloud Security
12.4.1 Spring Sercurity 自定制化
12.4.2 OAuth2 自定制化
12.4.3 SSO 单点登录
12.3.1 SecurityContext 安全上下文
12.3.2 Authentication 认证
12.3.3 Authorization 授权
12.3.4 Spring Security 中的过滤器与拦截器
12.3.5 授权服务器
12.3.6 资源服务器
12.3.7 Token 中继机制
12.2.1 Spring Security 架构概述
12.2.2 Spring Security OAuth2 架构概述
12.2.3 Spring Cloud Security 中的 Security 和 OAuth2
12.1.1 OAuth2 简介 12.1.2 JWT
12.1.3 搭建授权服务器
12.1.4 配置资源服务器
12.1.5 访问受限资源
12.1 基础应用
12.2 整体架构
12.3 源码解析
12.4 进阶应用
12.5 本章小结
第 13 章 服务链路追踪:Spring Cloud Sleuth
13.2.1 特性
13.2.2 项目准备
13.2.3 Spring Cloud Sleuth 独立实现
13.2.4 集成 Zipkin
13.1.1 常用的监控组件
13.1.2 基础概念
13.1 链路监控组件介绍
13.2 基础应用
13.3 本章小结
最后
最后想说的是,写书不易,请大家支持正版。作者水平有限,如有问题和疑惑欢迎指正。
本书配套的源码地址:https://github.com/Advanced-SpringCloud/cloud-book
点击阅读原文或者通过《Spring Cloud 微服务架构进阶》购买链接:https://item.jd.com/12453340.html
更多推荐
所有评论(0)