1

高トラフィック SpringBoot アプリケーションを Wildfly 10 にデプロイしました。このアプリケーションのサーバー アーキテクチャは、nginx (Angular アプリケーション) -> (リバース プロキシ) -> wildfly サーバーです。時間帯はトラフィックが多いため、nginx が一定時間後に接続を閉じるため、8080 ポート (wildfly アプリケーション ポート) は CLOSE_WAIT のままです。

リクエスト時間が 5 秒を超える場合、接続を閉じるように Spring Boot アプリケーションを構成しようとしています。

例:

@GetMapping("test1")
public ResponseEntity test1(){
    return ResponseEntity.ok("TESTED!");
}

@GetMapping("test2")
public ResponseEntity test2() throws InterruptedException{
    Thread.sleep(300000);
    return ResponseEntity.ok("TESTED!");
}

test2 Get HTTP メソッドの場合、スプリング ブート アプリケーション/Wildfly/centos を構成して、着信要求の接続タイムアウトを設定する方法はありますか?

4

1 に答える 1

0

あなたはあなたで試すことができserver.connection-timeout=300000ますapplication.properties.

公式ドキュメントから:

server.connection-timeout= # コネクタが接続を閉じる前に別の HTTP 要求を待機する時間 (ミリ秒)。設定されていない場合、コネクタのコンテナ固有のデフォルトが使用されます。-1 の値を使用して、タイムアウトなし (つまり、無限) を示します。

または、@Transactionalアノテーションを使用して、引数を次のように設定することもできます。

@Transactional(timeout = 300000)

于 2020-08-04T12:52:56.687 に答える