Spring webfluxが別のリクエストをブロックしている

javaTry:

私は春のwebfluxを勉強していて、理解できない状況に直面しています。

春バージョン= 2.2.4.RELEASE私のコンピューターには4つのコアがあります。

私のクラス:

@RestController
@RequestMapping("rest/v1/")
public class RootController {

    private final WebClient webClient =
            WebClient.create("http://localhost:8081");

    @GetMapping("/booking")
    public Mono book() {
        return Mono.just("A");
    }

    @GetMapping("/sleep")
    public Mono<String> sleep(@RequestParam("time") long time) throws InterruptedException {
        System.out.printf("Thread name is %s, date is %s. \n", Thread.currentThread().getName(), new Date());
        String uri = "/rest/v1/sleep?time=" + time;
        String uuid = UUID.randomUUID().toString();

        System.out.println(">>>>>>>>>>>>" + uuid);
        Mono<String> stringMono = webClient.get().uri(uri)
                .retrieve()
                .bodyToMono(String.class);
        System.out.printf("Finish -> Thread name is %s, date is %s. \n", Thread.currentThread().getName(), new Date());
        return stringMono;
    }
}

私のマシンには別のアプリケーションがあり、ポート8081で実行されています。このエンドポイントは、paramが受け取った時間だけスリープします。

目標は、遅いエンドポイントを呼び出したときのwebfluxの動作をテストすることです。

私はこのようなリクエストを実行しています:

http:// localhost:8082 / rest / v1 / sleep?time = 20000

この場合、応答には20秒かかります。

この期間中に別のリクエストを実行すると、コントローラーはリクエストを処理せず、このリクエストの終了(20秒)を待ち続けます。

Springはネットワーク呼び出しを待っている間に別のリクエストを処理する必要がありますか?

これはログです:

Thread name is reactor-http-epoll-3, date is Sat May 16 19:06:54 BRT 2020. 
>>>>>>>>>>>>22b36a46-e36b-4104-981a-e132483a334e
Finish -> Thread name is reactor-http-epoll-3, date is Sat May 16 19:06:54 BRT 2020. 
Thread name is reactor-http-epoll-3, date is Sat May 16 19:07:14 BRT 2020. 
>>>>>>>>>>>>076a0eec-3bb1-485a-ab88-9b11c6b9a5bd
Finish -> Thread name is reactor-http-epoll-3, date is Sat May 16 19:07:14 BRT 2020. 
javaTry:

問題は、「MartinTarjányi」がコメントで言ったように、私のリクエストをキューに入れているクロムの問題でした:

Chromeブラウザからエンドポイントにアクセスしましたか?理由はわかりませんが、同様の問題が発生しました。覚えていますが、FirefoxでもEdgeでもうまくいきました。別のアプリからプログラムで呼び出すこともできます。編集:stackoverflow.com/a/53236741/6051176

どうもありがとう@MartinTarjányi

他のクライアントを使用したリクエストまたはパラメータの変更はうまく機能します。同じリソースChromeがリクエストをキューに入れます。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

Spring webfluxが別のリクエストをブロックしている

分類Dev

Spring Webfluxが並行して256リクエストのみを受け入れるのはなぜですか?

分類Dev

Spring SecurityWebFilterChainを使用して、いくつかの既知のパスを除くすべての非httpsリクエストを無効/ブロックする方法

分類Dev

Spring Webflux&Spring Cloud Gateway:Monoでオブジェクトを抽出してリクエストヘッダーに追加する方法

分類Dev

Springブート2でwebfluxを使用してHTTP OPTIONSリクエストを処理する方法

分類Dev

許可されていないリクエストに対して、CSSリソースがSpring Securityによってブロックされる

分類Dev

Spring-オブジェクトのリストを返すリクエストメソッドがエラーを示しています

分類Dev

WebClient Spring WebFluxを使用した複数のリクエスト

分類Dev

QueryDSLとSpringのリポジトリを使用してクロステーブルクエリを作成する

分類Dev

Spring-webflux、@ ExceptionHandlerのパラメーターとしてリクエストを取得する方法

分類Dev

Spring-webflux、@ ExceptionHandlerのパラメーターとしてリクエストを取得する方法

分類Dev

AjaxリクエストがSpringブートコントローラーを呼び出していません

分類Dev

空のマップ {} を GET リクエストに渡している間、Spring MVC エンドポイントがフェッチしない

分類Dev

このSpring Bootアプリが投稿リクエストに対して例外をスローする理由

分類Dev

Spring Webfluxのリクエストライフサイクルを通じてデータを共有する

分類Dev

Spring Security-ロール別にリストされているいくつかのURLを除いて、URLへのアクセスをブロックするにはどうすればよいですか?

分類Dev

ブロッキング/同期リクエストでSpringのWebClientを使用してtry / catchで例外をキャッチする

分類Dev

Angularのリクエストがバックエンドで私のAPIをマップしない(Spring Boot)

分類Dev

Spring RESTプロジェクトに対して正しいPOSTリクエストを作成する方法

分類Dev

Spring webfluxアプリケーションがすべてのリクエストで一時ファイルを作成するのはなぜですか?

分類Dev

Spring Boot 2 + webfluxでURIのメトリックを正しく生成する方法

分類Dev

合計実行時間を計算し、応答ヘッダー、つまりSpring WebFluxのすべてのリクエストのx-runtimeに設定するにはどうすればよいですか?

分類Dev

SpringブートがCQLクエリをログに記録しない

分類Dev

Spring コントローラーのリクエストマッピングが正しく機能しない

分類Dev

Spring webflux:リクエストからモノラルまたはフラックスを消費する

分類Dev

Java / Spring>リクエストで本文が送信されない場合、@ RequestBodyを使用してコントローラーメソッドの不正なリクエスト応答を処理します

分類Dev

Java / Spring>リクエストで本文が送信されない場合、@ RequestBodyを使用してコントローラーメソッドの不正なリクエスト応答を処理します

分類Dev

Spring WebFluxリアクティブWebSocketが接続のクローズを防止する

分類Dev

権限のないユーザーとして401を送信する方法と、データベースクエリがSpringブートWebアプリREST APIコントローラーでnullオブジェクトを返した場合に404を送信する方法

Related 関連記事

  1. 1

    Spring webfluxが別のリクエストをブロックしている

  2. 2

    Spring Webfluxが並行して256リクエストのみを受け入れるのはなぜですか?

  3. 3

    Spring SecurityWebFilterChainを使用して、いくつかの既知のパスを除くすべての非httpsリクエストを無効/ブロックする方法

  4. 4

    Spring Webflux&Spring Cloud Gateway:Monoでオブジェクトを抽出してリクエストヘッダーに追加する方法

  5. 5

    Springブート2でwebfluxを使用してHTTP OPTIONSリクエストを処理する方法

  6. 6

    許可されていないリクエストに対して、CSSリソースがSpring Securityによってブロックされる

  7. 7

    Spring-オブジェクトのリストを返すリクエストメソッドがエラーを示しています

  8. 8

    WebClient Spring WebFluxを使用した複数のリクエスト

  9. 9

    QueryDSLとSpringのリポジトリを使用してクロステーブルクエリを作成する

  10. 10

    Spring-webflux、@ ExceptionHandlerのパラメーターとしてリクエストを取得する方法

  11. 11

    Spring-webflux、@ ExceptionHandlerのパラメーターとしてリクエストを取得する方法

  12. 12

    AjaxリクエストがSpringブートコントローラーを呼び出していません

  13. 13

    空のマップ {} を GET リクエストに渡している間、Spring MVC エンドポイントがフェッチしない

  14. 14

    このSpring Bootアプリが投稿リクエストに対して例外をスローする理由

  15. 15

    Spring Webfluxのリクエストライフサイクルを通じてデータを共有する

  16. 16

    Spring Security-ロール別にリストされているいくつかのURLを除いて、URLへのアクセスをブロックするにはどうすればよいですか?

  17. 17

    ブロッキング/同期リクエストでSpringのWebClientを使用してtry / catchで例外をキャッチする

  18. 18

    Angularのリクエストがバックエンドで私のAPIをマップしない(Spring Boot)

  19. 19

    Spring RESTプロジェクトに対して正しいPOSTリクエストを作成する方法

  20. 20

    Spring webfluxアプリケーションがすべてのリクエストで一時ファイルを作成するのはなぜですか?

  21. 21

    Spring Boot 2 + webfluxでURIのメトリックを正しく生成する方法

  22. 22

    合計実行時間を計算し、応答ヘッダー、つまりSpring WebFluxのすべてのリクエストのx-runtimeに設定するにはどうすればよいですか?

  23. 23

    SpringブートがCQLクエリをログに記録しない

  24. 24

    Spring コントローラーのリクエストマッピングが正しく機能しない

  25. 25

    Spring webflux:リクエストからモノラルまたはフラックスを消費する

  26. 26

    Java / Spring>リクエストで本文が送信されない場合、@ RequestBodyを使用してコントローラーメソッドの不正なリクエスト応答を処理します

  27. 27

    Java / Spring>リクエストで本文が送信されない場合、@ RequestBodyを使用してコントローラーメソッドの不正なリクエスト応答を処理します

  28. 28

    Spring WebFluxリアクティブWebSocketが接続のクローズを防止する

  29. 29

    権限のないユーザーとして401を送信する方法と、データベースクエリがSpringブートWebアプリREST APIコントローラーでnullオブジェクトを返した場合に404を送信する方法

ホットタグ

アーカイブ