Это действительно зависит от базовой библиотеки HTTP, используемой Spring WebFlux.В настоящий момент Spring поддерживает Reactor Netty (по умолчанию) и клиент Jetty.
По умолчанию WebClient
будет иметь один пул соединений;соединения повторно используются на основе ключа хоста + порта, и reactor.netty.resources.ConnectionProvider
будет эластичным, что означает, что он никогда не будет ждать открытия нового соединения.Вы можете настроить свое собственное и установить максимальное количество подключений к фиксированному значению.
Насколько я знаю, keepAlive и все параметры, связанные с TCP, обрабатываются на уровне TCP с помощью io.netty.channel.ChannelOption
.Я не думаю, что вы можете изменить их для каждого хоста или для пула соединений, поскольку они принадлежат ресурсам цикла событий.
Другие клиенты, такие как Jetty, могут предоставлять другие варианты, ноЯ предполагаю, что вы используете здесь значение по умолчанию.
Я не вижу веской причины иметь пул соединений на хост.Обычно мы стремимся достичь максимального использования ресурсов.Например, в Spring Boot мы автоматически настраиваем параметры, чтобы сервер и клиент (в одном приложении) повторно использовали одни и те же ресурсы.Поскольку некоторые из них привязаны к числу ядер ЦП, повторное использование одних и тех же повышает общую эффективность.
Существует множество вариантов, связанных с TCP, и, если у вас нет особой проблемы, которую нужно решить, я думаю, что по умолчаниюследует сохранить, как много мыслей было вложено в них.