Я использую Spring Boot с Embedded Tomcat 9.0.36. Это используется как Docker изображение в Kubernetes. Недавно после обновления посланника я начал получать исключения.
"upstream connect error or disconnect/reset before headers. reset reason: connection termination" with 503 status code
Некоторые люди предлагали увеличить время ожидания простоя до 60 секунд, но при весенней загрузке мне удалось выяснить "Время ожидания соединения" и "Сохранить Alive Time Out ". Я увеличил их до 5 минут, используя приведенный ниже код.
@Configuration
public class TomcatCustomizer implements WebServerFactoryCustomizer<TomcatServletWebServerFactory> {
private static final Logger LOGGER = LoggerFactory.getLogger(TomcatCustomizer.class);
@Override
public void customize(TomcatServletWebServerFactory factory) {
factory.addConnectorCustomizers(connector -> {
AbstractHttp11Protocol protocol = (AbstractHttp11Protocol) connector.getProtocolHandler();
//Setting up connection time out
protocol.setKeepAliveTimeout(360000);
protocol.setConnectionTimeout(360000);
protocol.setMaxKeepAliveRequests(120);
});
}
}
Тем не менее, я получаю ту же ошибку. Это приложение вызывает другую внутреннюю службу, которая также находится в Kubernetes. Я могу видеть успешный ответ в своем сервисе, но после этого я не вижу никаких журналов.