リアクティブインフラストラクチャ

リアクティブ 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 WebFluxVert.x (英語) など) に渡すと、パブリッシャーにサブスクライブされ、実際の実行が開始されます。詳細については、プロジェクトリアクターのドキュメント (英語) を参照してください。

リアクティブ組成物 ライブラリ

リアクティブスペースでは、さまざまなリアクティブ組成ライブラリを提供します。最も一般的なライブラリは RxJava [GitHub] (英語) およびプロジェクト Reactor (英語) です。

Apache Cassandra 用の Spring Data は、DataStax Cassandra ドライバー [GitHub] (英語) 上に構築されています。ドライバーはリアクティブではありませんが、非同期機能により、Reactive Streams (英語) イニシアチブに依存して、Publisher API を採用して公開し、最大限の相互運用性を提供できます。ReactiveCassandraOperations などの静的 API は、プロジェクト Reactor の Flux および Mono 型を使用して提供されます。プロジェクト Reactor は、リアクティブラッパー型 (Flux から Observable へ、およびその逆) を変換するためのさまざまなアダプターを提供していますが、変換によってコードが乱雑になる可能性があります。