Есть ли способ настроить Spring Boot API для установки тайм-аута соединения для входящего запроса? - PullRequest
1 голос
/ 04 августа 2020

Я развернул свое приложение с высоким трафиком c SpringBoot на Wildfly 10. Архитектура сервера для этого приложения: nginx (Angular Приложение) -> (обратный прокси) -> сервер wildfly. Поскольку мы получаем высокий трафик c в течение нескольких часов, порт 8080 (порт приложения wildfly) остается на CLOSE_WAIT, потому что nginx закрывает соединение через определенный период времени.

Я хочу настроить Spring Загрузите приложение, чтобы закрыть соединение, если время запроса, скажем,> 5 секунд.

Пример:

@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 есть ли способ настроить spring загрузите приложение / Wildfly / centos, чтобы установить тайм-аут соединения для входящего запроса?

1 Ответ

0 голосов
/ 04 августа 2020

Вы можете попробовать server.connection-timeout=300000 в вашем application.properties.

Из официальной документации:

server.connection-timeout = # Время в миллисекундах, в течение которого соединители будут ждать следующего HTTP-запрос перед закрытием соединения. Если не задан, будет использоваться c по умолчанию для конкретного контейнера. Используйте значение -1, чтобы указать отсутствие (т.е. бесконечное) тайм-аута.

Или вы можете попробовать использовать аннотацию @Transactional и установить для нее такой аргумент:

@Transactional(timeout = 300000)

...