反应式基础设施
反应式 Cassandra 支持包含广泛的功能:
-
使用基于 Java 的 Spring 配置支持
@Configuration
类。 -
ReactiveCqlTemplate
帮助程序类,该类通过正确处理常见的 Cassandra 数据访问作来提高生产力。 -
ReactiveCassandraTemplate
helper 类,通过使用ReactiveCassandraOperations
以一种反应性的方式。 它包括表和 POJO 之间的集成对象映射。 -
将异常转换为 Spring 的可移植 Data Access Exception Hierarchy。
-
与 Spring 的 Conversion Service 集成的功能丰富的对象映射。
-
基于 Java 的查询、条件和更新 DSL。
-
自动实现
Repository
接口,包括对自定义 Finder 方法的支持。
对于大多数面向数据的任务,您可以使用ReactiveCassandraTemplate
或存储库支持,它们使用丰富的对象映射功能。ReactiveCqlTemplate
通常用于递增计数器或执行临时 CRUD作。ReactiveCqlTemplate
还提供了回调方法,可以轻松获取底层 API 对象,例如com.datastax.oss.driver.api.core.CqlSession
,这样您就可以直接与 Cassandra 通信。
Spring Data for Apache Cassandra 对各种 API 中的对象使用 DataStax Java 驱动程序中的对象一致的命名约定,以便立即熟悉它们,以便您可以将现有知识映射到 Spring API 上。
反应式使用分为两个阶段:组合和执行。
调用存储库方法允许您通过获取Publisher
实例和应用运算符。
在您订阅之前,不会发生 I/O。
将反应式序列传递给反应式执行基础设施,例如 Spring WebFlux 或 Vert.x),订阅发布者并启动实际执行。
有关更多详细信息,请参阅 Project reactor 文档。
响应式组合库
反应式空间提供了各种反应式组合库。 最常见的库是 RxJava 和 Project Reactor。
Spring Data for Apache Cassandra 构建在 DataStax Cassandra 驱动程序之上。
驱动程序不是响应式的,但异步功能允许我们采用和公开Publisher
API 依靠 Reactive Streams 计划提供最大的互作性。
静态 API,例如ReactiveCassandraOperations
,通过使用 Project Reactor 的Flux
和Mono
类型。
Project Reactor 提供了各种适配器来转换反应式包装器类型 (Flux
自Observable
和 back),但转换很容易使代码混乱。