問題タブ [reactor-netty]
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.
amazon-s3 - S3 でのファイル操作用の Spring Reactive Proxy サーバー
クライアント (iOS、Web など) から S3 に大きなファイルをストリーミングするプロキシ サーバーを構築しています。SpringリアクティブをNettyで使用する予定です。私は Netty とリアクティブ アーキテクチャに追いついており、これまでのところ非常に有望に見えます。このようなことを以前に解決した人はいますか?はいの場合、素晴らしいスターター プロジェクトのポインタまたは GitHub URL を共有していただけますか。
いくつかの質問:
現在の技術スタックでこれを行うことは可能ですか? それはそうですね。しかし、フィードバックが欲しかった。
Netty とリアクティブ アーキテクチャでは、データのチャンクが非同期方式で送信されます。パケットを順番に S3 に送信するにはどうすればよいですか?
また、AmazonS3 クライアントは、Java SDK を使用したリアクティブ ファイル操作をサポートしていますか? そうでない場合は、Spring リアクティブ WebClient を使用して API を直接呼び出す必要があります。
この質問は要点がなく、非常に広範であることを理解しています。ここでの目的は、誰かがこのような問題を解決したかどうか、そして彼らがいくつかのヒントを提供できるかどうかを見つけることです.
ありがとう。
spring-webflux - Spring WebFlux webclient ハンドル ConnectTimeoutException
Spring WebFlux Web クライアントを使用して REST 呼び出しを行っています。3000
それに応じて、ミリ秒単位で接続タイムアウトを構成しました。
このメソッドは、すべての/応答コードに対してonStatus
空を返しています。接続タイムアウトや、読み取り/書き込みタイムアウトについても同じことを行うにはどうすればよいですか。今のところ、によって処理されないをスローするだけですMono
400
500
io.netty.channel.ConnectTimeoutException
onStatus
@ExceptionHandler
これらの REST 呼び出しはより複雑なフローの一部であり、空Mono
の要素を介して無視する必要があるため、コントローラーには必要ありません。
に戻っspring-web
てRestTemplate
、接続タイムアウトも . になったことを覚えていますRestClientException
。したがってRestClientException
、すべての例外とタイムアウトをキャッチできます。これを行う方法はありWebClient
ますか?
java - WebClient Spring 5 IllegalStateException
IllegalStateException が原因で発生した MonoError を受け取りました。原因は「基になる HTTP クライアントが応答を発行せずに完了しました」です。
NetworkList は、ネットワーク トポロジのリストを含むクラスであり、メソッド convertJsonToPojo 内から呼び出される setList を持ちます。
client は、reactor-netty (0.7.5.RELEASE) を使用する Spring 5 (5.0.4.RELEASE) の WebClient (spring-webflux) です。
次のスニペットは、WebClient を使用して type = BOARDS、CARDS、PORTS、ROUTERS などへの非同期呼び出しを行う方法を示しています。ネットワーク名は projectName として渡され、トポロジ タイプは type として渡されます。
私が攻撃している残りのサービスは、要求されたコンポーネントを表す json を返す特異なサービスです。
これはReactive WebClient Not Emitting A Responseに似ていますが、次の reactor-netty issue Issue 138へのポイント内の応答です。その問題は、0.6.6.RELEASE で修正されたことを示します。
私の質問は、WebClient を無意識のうちに間違って使用しているのか、それとも未修正のバグとして提出する必要があるのかということです。私はSpring 5とReactiveライブラリにかなり慣れていないので、単純にバグを送信したくありません.
よろしくお願いします!
PS - 私はこれを RestTemplate と CompletableFuture と連携させているので、代わりにその提案を提供する必要はありません。私の任務は、リアクティブ アーキテクチャへの移行を開始することです。ありがとうございました!
更新 - 何が起こっているのか理解できたと思いますが、誰かからの確認が必要です. 私が攻撃している残りのサービスは、従来のサービスであり、リアクティブ ストリームではありません。したがって、通話中に共有される「ステージ」の更新はありません。.subscribe() はリアクティブ ストリームを予期しているため、完全なステージを受信していません。.subscribe() を .block() に置き換えると、完了が強制され、コードが機能するようになりました。このことから私が学んだことは、従来のレスト サービスを扱う場合、ブロックが必要であるということです。誰かがそれを確認できますか?ありがとうございました!
spring-data-mongodb - Spring Webflux / Reactor Netty Web アプリケーション内でブロッキング呼び出しを実行する方法
Reactor Netty を使用した Spring Webflux マイクロサービスを使用する私のユース ケースでは、次の依存関係があります。
org.springframework.boot.spring-boot-starter-webflux
(2.0.1.RELEASE)org.springframework.boot.spring-boot-starter-data-mongodb-reactive
(2.0.1.RELEASE)org.projectreactor.reactor-spring
(1.0.1.RELEASE)
非常に特殊なケースでは、Mongo データベースからいくつかの情報を取得し、これを処理して、reactive で送信するクエリ パラメータにする必要がありますWebClient
。WebClient
もUriComponentsBuilder
パブリッシャー (Mono / Flux) も受け入れないため、呼び出しを使用して#block()
結果を受け取りました。
reactor-core
最新 (バージョン 2.0.1.RELEASE) に含まれている(バージョン 0.7.6.RELEASE)以降spring-boot-dependencies
、使用できなくなりました:block()/blockFirst()/blockLast() are blocking, which is not supported in thread xxx
を参照してください -> https://github.com/reactor/reactor-netty/問題/312
私のコードスニペット:
これはspring-boot
バージョン 2.0.0.RELEASE では機能しましたが、バージョン 2.0.1.RELEASE へのアップグレード以降、バージョン 0.7.6.RELEASE へのアップグレード以降reactor-core
は許可されなくなりました。
私が見る唯一の実際の解決策は、ブロック (非反応性) リポジトリ/mongo クライアントも含めることですが、それが推奨されるかどうかはわかりません。助言がありますか?
java - Spring Security WebFlux - 認証付きボディ
シンプルな Spring Security WebFlux アプリケーションを実装したいと考えています。
次のようなJSONメッセージを使用したい
in body (/signin への POST リクエスト) でアプリにサインインします。
私は何をしましたか?
この構成を作成しました
しかし、私は jsonBodyAuthenticationConverter() を使用し、着信リクエストの本文を読み取ります。Body は 1 回しか読み取れないため、エラーが発生しています
実際には機能していますが、例外があります (セッションは Cookie に設定されています)。このエラーなしで再作成するにはどうすればよいですか?
今、私は次のようなものだけを作成しました:
そして構成から削除されAuthenticationWebFilter
ました。