第 12 章 响应式持久化数据

本章介绍

  • Spring Data 中的响应式 Repository

  • 编写适用于 Cassandra 和 MongoDB 的响应式 Repository

  • 非响应式 Repository 适配响应式使用

  • 基于 Cassandra 的数据建模

当我考虑非阻塞响应式代码和阻塞式代码时,我开始想到交通的早高峰。早高峰时每个人都匆忙的赶往自己的目的地,导致人们都无可奈何的拥挤在一起。每个人都明白,如果不是路上的其他人,我肯定可以按时到达目的地。

即使我着急去某个地方(非阻塞的,我没有其他事要做),那也不是说路上就会一路畅通。可能前面的其他驾驶人发生了一次小车祸,挡住了道路。所以即使我回家这个事是非阻塞的,在事故现场清理之前我还是被堵在原地。

在上一章中,您了解了如何使用 Spring WebFlux 创建响应式地、无阻塞的 Controller,这有助于提高 web 层的可伸缩性。但是那些 Controller 只有在与其他非阻塞组件一起工作时,才是真正的无阻塞。如果我们使用 Spring WebFlux 编写的 Controller,仍然依赖于阻塞的 Repository,那我们的响应式 Controller 将会由于等待生成数据而被阻止。

因此,重要的是整个数据流,一直从 Controller 到 Repository,都是响应式和非阻塞的。在本章中,您将了解如何使用 Spring Data 编写响应式 Repository,这类似于在第三章中的编程模型。我们将首先调查研究一下 Spring Data 对响应式有哪些支持。

最后更新于