Насколько я понял, у вас нет кода для запуска в 5 или более IP-адресов, а скорее любопытство.Итак, вот мой опыт:
Поскольку вы используете RestTemplate
, который по умолчанию использует SimpleClientHttpRequestFactory
.И как определение времени ожидания соединения идет:
Время ожидания соединения - это время ожидания при установлении первоначального соединения;т.е. завершение установления соединения TCP и подключение к запрашиваемому серверу.
Итак, в соответствии с теорией: независимо от топологии базовой службы RestTemplate попытается установить соединение в соответствии со значением времени ожидания соединения.
И чтобы выяснить almost exact timeout
в вашем случае, вы должны выполнить некоторый тест задержки, распечатать разницу во времени, которую restTemplate
берет, чтобы получить 200 OK
.
Кроме того, SimpleClientHttpRequestFactory
внутренне использует HttpURLConnection
, который по умолчанию имеет время ожидания infinite
(0 / -1).
Да, это также наблюдалось в редких случаях, соединение продолжает пытаться, если только Thread.interrupt()
явно не вызывается до конца.
Таким образом, становится жизненно важным описать ваши значения времени ожидания для чтения и соединения, и таким образом вы ограничиваете свое соединение до установленных вами пределов.
Надеюсь, это поможет.