对于最新的稳定版本,请使用 Spring Data Cassandra 5.0.4spring-doc.cadn.net.cn

响应式基础设施

响应式 Cassandra 支持包含广泛的功能:spring-doc.cadn.net.cn

对于大多数面向数据的任务,您可以使用 ReactiveCassandraTemplate 或仓库(repository)支持,它们利用了丰富的对象映射功能。ReactiveCqlTemplate 通常用于递增计数器或执行临时的 CRUD 操作。ReactiveCqlTemplate 还提供了回调方法,便于获取底层 API 对象,例如 com.datastax.oss.driver.api.core.CqlSession,从而让您能够直接与 Cassandra 通信。 Spring Data for Apache Cassandra 在各种 API 中的对象命名上采用了与 DataStax Java Driver 一致的命名约定,使您能够立即熟悉这些对象,并将已有的知识轻松映射到 Spring API 上。spring-doc.cadn.net.cn

响应式使用分为两个阶段:组合(Composition)和执行(Execution)。spring-doc.cadn.net.cn

调用仓库方法可以让你通过获取 Publisher 实例并应用操作符来组合一个响应式序列。 在你订阅之前,不会发生任何 I/O 操作。 将该响应式序列传递给响应式执行基础设施(例如 Spring WebFluxVert.x)会订阅该发布者并启动实际的执行过程。 更多详情请参见 Project Reactor 文档spring-doc.cadn.net.cn

响应式组合库

响应式编程领域提供了多种响应式组合库。 最常见的库是 RxJavaProject Reactorspring-doc.cadn.net.cn

Spring Data for Apache Cassandra 构建于 DataStax Cassandra Driver 之上。 该驱动程序本身并非响应式(reactive),但其异步能力使我们能够采用并暴露 Publisher API,通过依赖 Reactive Streams 倡议来实现最大程度的互操作性。 通过使用 Project Reactor 的 ReactiveCassandraOperationsFlux 类型,提供了诸如 Mono 等静态 API。 Project Reactor 提供了多种适配器,用于在响应式包装类型之间进行转换(例如 FluxObservable 之间的相互转换),但这类转换很容易使代码变得混乱。spring-doc.cadn.net.cn