#java #spring-boot #rest
#java #весенняя загрузка #отдых
Вопрос:
У меня есть микросервис для Spring boot 2, и он взаимодействует с другими сервисами. У меня возникла проблема, заключающаяся в том, что когда я вызываю другую службу, используя resttemlate, и она недоступна, основной поток останавливается и ожидает ответа от этой службы, и в результате через 15 секунд он получает ответ о тайм-ауте соединения. Проблема в том, что на этот раз я не могу ждать. Мне нужно, чтобы служба работала без задержек, а не ждала несколько секунд, пока другая служба ответит или не ответит. Как можно решить эту проблему? Я думаю, вы можете запустить другой поток с запросом к этой службе и позволить основному потоку продолжать работать без задержек, это правильное решение? Есть ли готовое решение в Spring Boot для моей проблемы?
Ответ №1:
Вы можете установить время ожидания для resttemplate. Укажите желаемое значение.
int timeout = 1; // time here is in milliseconds.
HttpComponentsClientHttpRequestFactory rf =
(HttpComponentsClientHttpRequestFactory) restTemplate.getRequestFactory();
rf.setConnectTimeout(timeout);