《Spring响应式微服务:Spring Boot 2+Spring 5+Spring Cloud实战》主要包含构建响应式微服务架构过程中所应具备的技术体系和工程实践。围绕响应式编程和微服务 架构的整合,我们将讨论如何使用 Reactor 响应式编程框架、如何构建响应式 RESTful 服务、如何构建响应式数据访问组件、如何构建响应式消息通信组件、如何构建响应式微服务架构,以及如何测试响应式微服务 架构等核心主题,并基于这些核心主题给出具体的案例分析。
《Spring响应式微服务:Spring Boot 2+Spring 5+Spring Cloud实战》面向立志于成为微服务架构师(尤其是响应式微服务架构师)的后端服务开发人员,读者不需要有 很高的技术水平,也不限于特定的开发语言,但熟悉 Java EE 常见技术并掌握一定异步编程模型和分布式架构的基本概念有助于更好地理解书中的内容。同时,本书也可以供具备不同技术体系的架构师同行参考,希 望能给日常研发和管理工作带来启发和帮助。
本书介绍了响应式微服务架构的核心技术和案例分析,是国内第一本响应式微服务架构领域的专著。本书结合作者多年微服务架构设计和实现的工程经验,基于最新的工具框架和编程方法,全面描述响应式微服务架构的核心组件和实现细节。同时,本书也在一定程度上从架构设计维度给出如何设计高性能、高扩展性服务化体系的方法论和总结。
郑天民,网名天涯兰,日本足利工业大学信息工程学硕士,研究方向为人工智能在大规模调度系统中的应用,在SCI、EI等国际三大索引上发表学术论文4篇。10年软件行业从业经验,前后担任系统分析架构师、技术总监和CTO等职务。目前在一家大健康领域的创新性科技公司担任CTO,负责产品研发与技术团队管理工作。主持过十余个面向研发人员的技术和管理类培训课程,对架构设计和技术管理有丰富的经验和深入的理解。著有《系统架构设计:程序员向架构师转型之路》、《向技术管理者转型:软件开发人员跨越行业、技术、管理的转型思维与实践》、《微服务设计原理与架构》、《微服务架构实战》等书籍。
当下互联网行业飞速发展,快速的业务更新和产品迭代也给系统开发过程和模式带来新的挑战。在这个时代背景下,以Spring Cloud为代表的微服务架构实现技术应运而生。微服务架构是一种分布式系统,在具备业务、技术和组织等方面具备相应优势的同时,也不得不面临分布式系统所固有的问题。如何确保微服务系统的即时响应性和服务弹性是我们构建微服务架构的一大挑战。幸运的是,Spring 框架的开发人员已经创建了一个崭新的、支持响应式的项目版本用来支持响应式微服务架构的设计和开发。通过构建响应式微服务架构,我们将在传统微服务架构的基础上提供即时响应性和服务弹性。
本书从响应式编程和微服务架构的基本概念开始展开。你将了解响应式的基本原理,以及Spring 5框架所集成的Project Reactor响应式开发框架。同时,你将进一步学习如何构建响应式RESTful服务、如何构建响应式数据访问组件、如何构建响应式消息通信组件、如何构建响应式微服务架构,以及如何测试响应式微服务架构等核心主题。所有这些内容都将应用于一个精简而又完整的示例项目,确保你能够将所学到的技能付诸于实践。
本书主要包含响应式微服务架构实现过程中所应具备的技术体系和工程实践,在组织结构上分如下8章内容。
第1章“直面响应式微服务架构”。作为全书的开篇,围绕响应式微服务架构的概念和构建方式展开讨论。通过对比传统编程方法和响应式编程方法引出响应式编程的核心概念,并引用响应式宣言来阐述响应式系统所应具备的基本系统特性和维度。同时,本章在介绍传统微服务架构的基础上,分析了响应式微服务架构的设计原则,然后对响应式编程和微服务架构进行了整合。
第2章“响应式编程模型与Reactor框架”。本章全面介绍响应式编程模型并引出了响应式流规范,Reactor框架为我们提供了一整套实现该规范的具体实现。我们在介绍Reactor框架中Mono和Flux这两个核心组件的基础上,进一步提供了一系列强大的操作符来操作这些组件。本章最后还对Reactor框架中的背压机制做了简单介绍,Reactor框架为我们提供了四种背压处理策略以满足不同场景需求。
第3章“构建响应式RESTful服务”。要想构建响应式微服务架构,首先需要构建单个响应式微服务。在Spring 5中引入了全新的响应式服务构建框架Spring WebFlux,支持使用注解编程模型和函数式编程模型两种方式来构建响应式RESTful服务。本章基于Spring Boot,对Spring WebFlux框架做了全面介绍。
第4章“构建响应式数据访问组件”。对于响应式微服务架构而言,数据访问也是构建全栈响应式系统的重要一环。为此,Spring Data框架也专门提供了Spring Reactive Data组件用来创建响应式数据访问层组件。在本章中,我们重点就Mongodb和Redis这两个支持响应式特性的Nosql数据库分别给出了如何使用Spring Reactive Data来实现响应式数据访问的基本步骤和代码示例。
第5章“构建响应式消息通信组件”。本章内容围绕构建响应式微服务架构的另一个重要主题展开讨论,即响应式消息通信。我们使用Reactive Spring Cloud Stream框架来实现响应式消息通信组件。本章先从事件驱动架构和模型出发,引出了Spring Cloud家族中实现消息通信的Spring Cloud Stream框架。然后对Spring Cloud Stream进行升级,结合响应式编程模型全面介绍Reactive Spring Cloud Stream框架的使用方法。
第6章“构建响应式微服务架构”。本章是全书的重点章节,我们通过使用Spring Cloud框架来实现响应式微服务架构。我们从服务治理、负载均衡、服务容错、服务网关、服务配置和服务监控等六大主题出发全面讨论了响应式微服务架构的核心组件及其实现方案。对于每个组件的介绍,我们都包含了使用该组件的具体方法以及相应的代码示例。同时,我们还专门使用一节内容来介绍WebClient这一响应式服务调用的实现工具。
第7章“测试响应式微服务架构”。本章中,首先介绍了初始化测试环境的准备工作,然后分别给出了测试响应式微服务架构中一系列独立层组件的方法和示例,即从数据流层出发,分别对基于响应式Mongodb的Repository层、Service层以及Controller层进行测试。
第8章“响应式微服务架构演进案例分析”。本章作为全书最后一章,通过一个完整的案例分析全面介绍了构建一个响应式微服务系统的各个方面。在介绍该案例时,首先采用了传统的微服务架构来实现该案例。然后,在传统微服务架构构建完毕的基础上,本章重点对如何向响应式微服务架构演进的方法和过程做了具体展开。首先需要更新基础设施类服务,更为重要的,我们需要完成对数据访问方式、事件通信方式、服务调用方式的全面升级。这里涉及响应式WebFlux、响应式Mongodb和Redis、响应式Spring Cloud Stream等响应式组件的使用方式和最佳实践。
本书面向立志于成为微服务架构师尤其是响应式微服务架构师的服务开发人员,读者不需要有很深的技术水平,也不限于特定的开发语言,但熟悉Java EE常见技术并掌握一定异步编程模型和分布式架构基本概念有助于更好地理解书中的内容。通过对本书的系统学习,读者将对响应式微服务架构的技术体系和实现方式有全面且深入的了解,为后续的工作和学习铺平道路。
在本书的撰写过程中,感谢我的家人特别是我的妻子章兰婷女士在我占用大量晚上和周末时间的情况下,能够给予极大的支持和理解。感谢以往以及现在公司的同事们,身处在业界领先的公司和团队中,让我得到很多学习和成长的机会,没有大家的帮助,不可能有这本书的诞生。最后,特别感谢电子工业出版社的张春雨编辑,这本书能够顺利出版,离不开他的帮助。
由于时间仓促,作者水平和经验有限,书中难免有欠妥和错误之处,恳请读者批评、指正。
郑天民
2019年3月于杭州钱江世纪城
我想问一下这个下载资源是这本书的吗?