リアクティブインフラストラクチャ
リアクティブ Cassandra サポートには、幅広い機能が含まれています。
Java ベースの
@Configuration
クラスを使用した Spring 構成のサポート。一般的な Cassandra データアクセス操作を適切に処理することで生産性を向上させる
ReactiveCqlTemplate
ヘルパークラス。ReactiveCassandraOperations
をリアクティブな方法で使用することで生産性を向上させるReactiveCassandraTemplate
ヘルパークラス。これには、テーブルと POJO 間の統合されたオブジェクトマッピングが含まれます。Spring のポータブルデータアクセス例外階層への例外変換。
Spring の変換サービスと統合された機能豊富なオブジェクトマッピング。
Java ベースのクエリ、条件、更新 DSL。
Repository
インターフェースの自動実装 (カスタムファインダーメソッドのサポートを含む)。
ほとんどのデータ指向タスクでは、豊富なオブジェクトマッピング機能を使用する ReactiveCassandraTemplate
またはリポジトリサポートを使用できます。ReactiveCqlTemplate
は、カウンターを増分したり、アドホック CRUD 操作を実行したりするためによく使用されます。ReactiveCqlTemplate
は、Cassandra と直接通信できる com.datastax.oss.driver.api.core.CqlSession
などの低レベル API オブジェクトを簡単に取得できるコールバックメソッドも提供します。Apache Cassandra の Spring Data は、さまざまな API のオブジェクトに対して、DataStax Java ドライバーのオブジェクトと同じ命名規則を使用しているため、すぐに使い慣れることができ、既存の知識を Spring API にマッピングできます。
リアクティブな使用は、構成と実行の 2 つのフェーズに分かれています。
リポジトリメソッドを呼び出すと、Publisher
インスタンスを取得して演算子を適用することで、リアクティブシーケンスを構成できます。サブスクライブするまで I/O は発生しません。リアクティブシーケンスをリアクティブ実行インフラストラクチャ ( Spring WebFlux や Vert.x (英語) など) に渡すと、パブリッシャーにサブスクライブされ、実際の実行が開始されます。詳細については、プロジェクトリアクターのドキュメント (英語) を参照してください。
リアクティブ組成物 ライブラリ
リアクティブスペースでは、さまざまなリアクティブ組成ライブラリを提供します。最も一般的なライブラリは RxJava [GitHub] (英語) およびプロジェクト Reactor (英語) です。
Apache Cassandra 用の Spring Data は、DataStax Cassandra ドライバー [GitHub] (英語) 上に構築されています。ドライバーはリアクティブではありませんが、非同期機能により、Reactive Streams (英語) イニシアチブに依存して、Publisher
API を採用して公開し、最大限の相互運用性を提供できます。ReactiveCassandraOperations
などの静的 API は、プロジェクト Reactor の Flux
および Mono
型を使用して提供されます。プロジェクト Reactor は、リアクティブラッパー型 (Flux
から Observable
へ、およびその逆) を変換するためのさまざまなアダプターを提供していますが、変換によってコードが乱雑になる可能性があります。