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