内容简介:我今年年初的时候,筹划了一本技术书籍,即为这篇文章的标题《Spring Cloud 微服务架构进阶》。今天正式开始预售了,年初到现在正好十个月,实在不易。写这篇文章胡乱谈谈技术之外的一些关于写书的琐事吧。写这本书有一些机缘巧合,去年有几个出版社的编辑通过我博客上的邮箱,发邮件和我联系。可能是因为微服务这几年确实很火吧,编辑们建议我写一本关于微服务的书。当时一听而过,并没有在意(编辑们也是广撒网,不能当真认为自己的水平达到了),更主要是感觉自己的文笔很菜,技术就那样,根本没什么兴趣。不过坚持写博客确实是一个
我今年年初的时候,筹划了一本技术书籍,即为这篇文章的标题《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.1 微服务的出现
- 1.1.1 单体应用
- 1.1.2 SOA 架构 1.1.3 微服务架构
- 1.2 微服务架构的流派
- 1.2.1 ZeroC IceGrid
- 1.2.2 基于消息队列
- 1.2.3 Docker Swarm
- 1.2.4 Spring Cloud
- 1.3 云原生与微服务
- 1.3.1 云原生
- 1.3.2 The Twelve Factors
- 1.3.3 容器化
- 1.3.4 DevOps
- 1.3.5 面向微服务
- 1.4 本章小结
- 1.1 微服务的出现
- 第 2 章 Spring Cloud 介绍
- 2.1 Spring Cloud 总览
- 2.1.1 版本说明
- 2.1.2 Spring Cloud 组成
- 2.2 Spring Cloud 特性
- 2.2.1 Spring Cloud 上下文
- 2.2.2 Spring Cloud Commons: 公共抽象
- 2.3 本章小结
- 2.1 Spring Cloud 总览
- 第 3 章 Spring Cloud 的基础:Spring Boot
- 3.1 Spring Boot 简介
- 3.1.1 Spring Boot 2.0
- 3.1.2 Spring Boot 与 Spring Cloud
- 3.2 Spring Boot 核心特性
- 3.3 构建一个微服务
- 3.3.1 IDEA 生成
- 3.3.2 initial 生成
- 3.4 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.5 本章小结
- 3.1 Spring Boot 简介
- 第 4 章 服务注册与发现:Eureka
- 4.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.2 服务发现原理
- 4.2.1 核心架构图
- 4.3 Eureka Client 源码解析
- 4.3.1 读取应用自身配置信息
- 4.3.2 服务发现客户端
- 4.3.3 拉取注册表信息
- 4.3.4 服务注册
- 4.3.5 初始化定时任务
- 4.3.6 服务下线
- 4.4 Eureka Server 源码解析
- 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.5 进阶应用
- 4.5.1 Eureka Instance 和 Client 的元数据
- 4.5.2 状态页和健康检查页端口设置
- 4.5.3 Region 与 Zone
- 4.5.4 高可用性服务注册中心
- 4.6 本章小结
- 4.1 基础应用
- 第 5 章 声明式 Restful 网络客户端:Spring Cloud OpenFeign
- 5.1 基础应用
- 5.1.1 微服务之间的交互
- 5.1.2 OpenFeign 简介
- 5.1.3 代码示例
- 5.2 源码分析
- 5.2.1 核心组件与概念
- 5.2.2 动态注册 BeanDefinition
- 5.2.3 实例初始化
- 5.2.4 函数调用和网络请求
- 5.3 进阶应用
- 5.3.1 Decoder 与 Encoder 的自定制化
- 5.3.2 请求/响应压缩
- 5.4 本章小结
- 5.1 基础应用
- 第 6 章 断路器:Hystrix
- 6.1 基础应用
- 6.1.1 RestTemplate 与 Hystrix
- 6.1.2 Feign 与 Hystrix
- 6.2 Hystrix 原理
- 6.2.1 服务雪崩
- 6.2.2 断路器
- 6.2.3 服务降级操作
- 6.2.4 资源隔离
- 6.2.5 Hystrix 实现思路
- 6.3 源码解析
- 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.4 进阶应用
- 6.4.1 核心配置讲解
- 6.4.2 异步与异步回调执行命令
- 6.4.3 继承 HystrixCommand
- 6.4.4 请求合并
- 6.4.5 Hystrix 仪表盘
- 6.5 本章小结
- 6.1 基础应用
- 第 7 章 客户端负载均衡器:Spring Cloud Netflix Ribbon
- 7.1 负载均衡
- 7.2 基础应用
- 7.3 源码分析
- 7.3.1 配置和实例初始化
- 7.3.2 与 OpenFeign 的集成
- 7.3.3 负载均衡器 LoadBalancerClient
- 7.3.4 ILoadBalancer
- 7.3.5 负载均衡策略实现
- 7.4 进阶应用
- 7.4.1 Ribbon API
- 7.4.2 使用 Netty 发送网络请求
- 7.4.3 只读数据库的负载均衡实现
- 7.5 本章小结
- 第 8 章 API 网关:Spring Cloud Gateway
- 8.1 Spring Cloud Gateway 介绍
- 8.2 基础应用
- 8.2.1 用户服务
- 8.2.2 网关服务
- 8.2.3 客户端的访问
- 8.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.4 应用进阶
- 8.4.1 限流机制
- 8.4.2 熔断降级
- 8.4.3 网关重试过滤器
- 8.5 本章小结
- 第 9 章 配置中心:Spring Cloud Config
- 9.1 基础应用
- 9.1.1 配置客户端
- 9.1.2 配置仓库
- 9.1.3 服务端
- 9.1.4 配置验证
- 9.1.5 配置动态更新
- 9.2 源码解析
- 9.2.1 配置服务器
- 9.2.2 配置客户端
- 9.3 应用进阶
- 9.3.1 为 config Server 配置多个 repo
- 9.3.2 客户端覆写远端的配置属性
- 9.3.3 属性覆盖
- 9.3.4 安全保护
- 9.3.5 加密解密
- 9.3.6 快速响应失败与重试机制
- 9.4 本章小结
- 9.1 基础应用
- 第 10 章 消息驱动:Spring Cloud Stream
- 10.1 消息队列
- 10.1.1 消息队列常用组件
- 10.2 基础应用
- 10.2.1 声明和绑定 Channels
- 10.2.2 自定义通道
- 10.2.3 接收消息
- 10.2.4 配置
- 10.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.4 进阶应用
- 10.4.1 Binder For RocketMQ
- 10.4.2 多实例
- 10.4.3 分区
- 10.5 本章小结
- 10.1 消息队列
- 第 11 章 消息总线:Spring Cloud Bus
- 11.1 基础应用
- 11.1.1 配置服务器 Config-Server
- 11.1.2 配置客户端 Config-Client
- 11.1.3 结果验证
- 11.2 源码解析
- 11.2.1 事件的定义与事件监听器
- 11.2.2 消息的订阅与发布
- 11.2.3 控制端点
- 11.3 应用进阶
- 11.3.1 在自定义的包中注册事件
- 11.3.2 自定义监听器
- 11.3.3 事件的发起者
- 11.4 本章小结
- 11.1 基础应用
- 第 12 章 认证与授权:Spring Cloud Security
- 12.1 基础应用
- 12.1.1 OAuth2 简介 12.1.2 JWT
- 12.1.3 搭建授权服务器
- 12.1.4 配置资源服务器
- 12.1.5 访问受限资源
- 12.2 整体架构
- 12.2.1 Spring Security 架构概述
- 12.2.2 Spring Security OAuth2 架构概述
- 12.2.3 Spring Cloud Security 中的 Security 和 OAuth2
- 12.3 源码解析
- 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.4 进阶应用
- 12.4.1 Spring Sercurity 自定制化
- 12.4.2 OAuth2 自定制化
- 12.4.3 SSO 单点登录
- 12.5 本章小结
- 12.1 基础应用
- 第 13 章 服务链路追踪:Spring Cloud Sleuth
- 13.1 链路监控组件介绍
- 13.1.1 常用的监控组件
- 13.1.2 基础概念
- 13.2 基础应用
- 13.2.1 特性
- 13.2.2 项目准备
- 13.2.3 Spring Cloud Sleuth 独立实现
- 13.2.4 集成 Zipkin
- 13.3 本章小结
- 13.1 链路监控组件介绍
以上所述就是小编给大家介绍的《Spring Cloud 微服务架构进阶》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- 单体架构与微服务架构对比,为什么采用微服务架构
- Java架构书籍:微服务架构必读书单(附微服务架构模式进阶导图)
- 「微服务架构」微服务架构中的数据一致性
- 架构演进之「微服务架构」
- 微服务架构 VS 单体架构
- 从单体架构到微服务架构
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
JavaScript & jQuery
David Sawyer McFarland / O Reilly / 2011-10-28 / USD 39.99
You don't need programming experience to add interactive and visual effects to your web pages with JavaScript. This Missing Manual shows you how the jQuery library makes JavaScript programming fun, ea......一起来看看 《JavaScript & jQuery》 这本书的介绍吧!
JS 压缩/解压工具
在线压缩/解压 JS 代码
HEX CMYK 转换工具
HEX CMYK 互转工具