問題タブ [rsocket]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
3 に答える
1785 参照

spring - 外部ブロッキング API 呼び出しを持つリアクティブ マイクロサービスを設計する方法は?

WebFlux フレームワーク上で動作するマイクロサービスがいくつかあります。各サーバーには、Mono または Flux を使用した独自の API があります。Spring でサポートされている MongoDB を使用しています (Spring Data MongoDb Reactive)。

問題は、システムで使用する必要がある外部ブロッキング API です。

私には1つの解決策があります。ブロッキング API 呼び出しを専用のスレッド プールにラップし、それを CompletableFuture で使用できます。

私の問題を解決するために他に何かありますか?新品の Rsocket では問題を解決できないと思います。

0 投票する
1 に答える
452 参照

security - rsocket を安全に使用するためのベスト プラクティスは何ですか?

rsocket を安全に使用するためのベスト プラクティスは何ですか (認証、承認)。これは rsocket が意見を述べているものですか、それとも他の人が rsocket の上に構築するために行った作業ですか?

0 投票する
1 に答える
544 参照

java - RSocket は生成されたデータでは機能しますが、Spring Reactive MongoDB では機能しません

解決策の概要:

現在出回っているほとんどの RSocket の例では、SpringBoot 関連のチュートリアルであっても、サーバー側のアクセプターは単純に新しいオブジェクト (以下の new MqttMessageService() など) として構築されています。アクセプター クラスでサンプル コンテンツを生成する場合は問題ありませんが、アクセプターがコンテナー内の他の Bean に依存している場合、以下の依存性注入に関連する混乱が生じる可能性があります。

元の質問:

Rsocket の Java サーバー経由で Spring Data Reactive Mongodb リポジトリを使用してデータベース エントリをストリーミングしようとすると、NullPointerException が発生します。

問題は、デバッグ中にすべてのコンポーネントが個別に動作することです。同じ Mongodb リポジトリを介して要求されたデータを取得でき、Rsocket を使用して同じサーバーとクライアント間でランダムに生成されたデータをストリーミングすることもできます。

したがって、本当に基本的なものが欠けているか、Reactive Mongodb と Rsocket を一緒に使用すると問題が発生する可能性があります。

元のサーバー側の Rsocket 構成は次のとおりです。

そして、これが適切なDIを備えたサーバー側のRsocket構成です。

これは、return service.findAll() で NullPointerException がスローされるサーバー側の AbstractRSocket 実装です。

リアクティブ リポジトリと関連サービスは次のとおりです。サービスは、サーバーの AbstractRSocket 実装に注入されると null を返しますが、他のクラスに注入されると正常に動作します。

テストの内容と完全に連携するクライアント側のコードは次のとおりです。

私はここで私の知識レベルを少し超えている可能性があり、このトピックに関するリソースは非常に限られているため、解決策へのヒントをいただければ幸いです:)

0 投票する
1 に答える
781 参照

java - Spring Boot で RSocket のすべての対話モデルをマップする方法

RSocket には 4 つの対話モデルが用意されています。

  • 火をつけて忘れる
  • リクエストとレスポンス
  • リクエストストリーム
  • リクエストチャンネル
  • (メタデータのプッシュ)

Spring (および Spring Boot) は RSocket 統合を提供します。元の RSocket API を隠すために、既存のメッセージング インフラストラクチャを使用して RSocket サーバーを簡単に構築できます。

また、クライアント側にはRescoketRequester、サーバーと握手をするための が用意されています。

でも使い方はrequestChannel Spring 方式のmetadataPushモデル (メッセージング インフラストラクチャを使用)?

サンプルコードはGithubにあります。更新: requestChannelサンプルを追加しました。

更新: SETUPMETADATA_PUSHは で処理できます@ConnectMapping。また、Spring Security RSocket はSETUPREQUESTを保護できます。