第1章 为什么选择响应式Spring
1.1 为什么需要响应性
1.2 响应性应用案例
1.3 为什么采用响应式Spring
1.4 小结
第2章 Spring响应式编程——基本概念
2.1 Spring的早期响应式解决方案
2.1.1 观察者模式
2.1.2 观察者模式使用示例
2.1.3 基于@EventListener注解的发布订阅模式
2.1.4 使用@EventListener注解构建应用程序
2.2 使用RxJava作为响应式框架
2.2.1 观察者加迭代器等于响应式流
2.2.2 生产和消费流数据
2.2.3 生成异步序列
2.2.4 流转换和弹珠图
2.2.5 RxJava的先决条件和优势
2.2.6 使用RxJava重建我们的应用程序
2.3 响应式库简史
2.4 响应式现状
2.5 小结
第3章 响应式流——新的流标准
3.1 无处不在的响应性
3.1.1 API不一致性问题
3.1.2 “拉”与“推”
3.1.3 流量控制问题
3.1.4 解决方案
3.2 响应式流规范基础知识
3.2.1 响应式流规范实战
3.2.2 响应式流技术兼容套件
3.2.3 JDK 9
3.3 高级主题——响应式流中的异步和并行
3.4 响应式环境的转变
3.4.1 RxJava的转变
3.4.2 Vert.x的调整
3.4.3 Ratpack的改进
3.4.4 MongoDB响应式流驱动程序
3.4.5 响应式技术组合实战
3.5 小结
第4章 Project Reactor——响应式应用程序的基础
4.1 Project Reactor简史
4.1.1 Project Reactor 1.x版本
4.1.2 Project Reactor 2.x版本
4.2 Project Reactor精髓
4.2.1 在项目中添加Reactor
4.2.2 响应式类型——Flux和Mono
4.2.3 创建Flux序列和Mono序列
4.2.4 订阅响应式流
4.2.5 用操作符转换响应式序列
4.2.6 以编程方式创建流
4.2.7 错误处理
4.2.8 背压处理
4.2.9 热数据流和冷数据流
4.2.10 处理时间
4.2.11 组合和转换响应式流
4.2.12 处理器
4.2.13 测试和调试Project Reactor
4.2.14 Reactor插件
4.3 Project Reactor的高级主题
4.3.1 响应式流的生命周期
4.3.2 Reactor中的线程调度模型
4.3.3 Project Reactor内幕
4.4 小结
第5章 使用Spring Boot 2实现响应性
5.1 快速启动是成功的关键
5.1.1 使用Spring Roo尝试更快地开发应用程序
5.1.2 Spring Boot是快速增长的应用程序的关键
5.2Spring Boot 2.0中的响应式
5.2.1 Spring Core 中的响应式
5.2.2 响应式Web
5.2.3 响应式Spring Data
5.2.4 响应式Spring Session
5.2.5 响应式Spring Security
5.2.6 响应式Spring Cloud
5.2.7 响应式Spring Test
5.2.8 响应式监控
5.3 小结
第6章 WebFlux异步非阻塞通信
6.1 WebFlux作为核心响应式服务器基础
6.1.1 响应式Web内核
6.1.2 响应式Web和MVC框架
6.1.3 基于WebFlux的纯函数式Web
6.1.4 基于WebClient的非阻塞跨服务通信
6.1.5 响应式WebSocket API
6.1.6 作为WebSocket轻量级替代品的响应式SSE
6.1.7 响应式模板引擎
6.1.8 响应式Web安全
6.1.9 与其他响应式库的交互
6.2 对比WebFlux和Web MVC
6.2.1 比较框架时的定律
6.2.2 全面分析和比较
6.3 WebFlux的应用
6.3.1 基于微服务的系统
6.3.2 处理客户端连接速度慢的系统
6.3.3 流或实时系统
6.3.4 WebFlux实战
6.4 小结
第7章 响应式数据库访问
7.1 现代数据处理模式
7.1.1 领域驱动设计
7.1.2 微服务时代的数据存储
7.1.3 多语言持久化
7.1.4 数据库即服务
7.1.5 跨微服务共享数据
7.2 获取数据的同步模型
7.2.1 数据库访问的连接协议
7.2.2 数据库驱动程序
7.2.3 JDBC
7.2.4 Spring JDBC
7.2.5 Spring Data JDBC
7.2.6 JPA
7.2.7 Spring Data JPA
7.2.8 Spring Data NoSQL
7.2.9 同步模型的局限性
7.2.10 同步模型的优点
7.3 使用 Spring Data进行响应式数据访问
7.3.1 使用MongoDB响应式库
7.3.2 组合存储库操作
7.3.3 响应式存储库的工作原理
7.3.4 响应式事务
7.3.5 Spring Data响应式连接器
7.3.6 限制和预期的改进
7.3.7 异步数据库访问
7.3.8 响应式关系型数据库连接
7.4 将同步存储库转换为响应式存储库
7.4.1 使用rxjava2-jdbc库
7.4.2 包装同步CrudRepository
7.5 响应式Spring Data实战
7.6 小结
第8章 使用Cloud Streams提升伸缩性
8.1 消息代理服务器是消息驱动系统的关键
8.1.1 服务器端负载均衡
8.1.2 基于Spring Cloud和Ribbon实现客户端负载均衡
8.1.3 消息代理服