Я думаю клиент спрея по умолчанию будет повторно использовать соединение, где это возможно.
По умолчанию соединения, которые не используются в течение 60 секунд, будут прекращены клиентом.
От reference config of spray:
# The time after which an idle connection will be automatically closed.
# Set to `infinite` to completely disable idle timeouts.
spray.client.idle-timeout = infinite
Если отключить простаивающие таймаута, наши связи будут оставаться активными навсегда, если удаленный сервер не установлен, чтобы убить неактивные соединения после некоторого тайм-аута (это вероятно, но спрей клиент должен убедиться, мы всегда можем получить новое соединение, подчиняясь пределу ниже).
Мы можем ограничить размер хоста Коннектор пула 1, чтобы получить желаемое поведение (одно соединение для каждого хоста):
# The maximum number of parallel connections that an `HttpHostConnector`
# is allowed to establish to a host. Must be greater than zero.
spray.can.host-connector.max-connections = 1
Это будет означать, что если послать второй запрос, прежде чем наш первый запрос имеет получил ответ, второй не будет отправлен до завершения первого. Чтобы отправить несколько запросов по одному соединению, не дожидаясь завершения первого, мы можем включить pipelining.
# If this setting is enabled, the `HttpHostConnector` pipelines requests
# across connections, otherwise only one single request can be "open"
# on a particular HTTP connection.
spray.can.host-connector.pipelining = off