内容简介:我今年年初的时候,筹划了一本技术书籍,即为这篇文章的标题《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 单体架构
- 从单体架构到微服务架构
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
从规范出发的程序设计
[美] Carroll Morgan / 裘宗燕 / 机械工业出版社 / 2002-8 / 45.00元
本书详细论述了有关规范程序设计的内容,包括:程序和精化、谓词演算、选择、迭代、构造类型、模块和封装等,最后几章还包含了大量的实例研究和一些更高级的程序设计技术。本书提倡一种严格的程序开发方法,分析问题要用严格方式写出程序的规范,而后通过一系列具有严格理论基础的推导,最终得到可以运行的程序。 本书是被世界上许多重要大学采用的教材,适于计算机及相关专业的本科生和研究生使用。一起来看看 《从规范出发的程序设计》 这本书的介绍吧!