2015-12-03 106 views

回答

1

上,我認爲在默認情況下噴霧客戶的任何信息都會重用連接在可能的情況。

默認情況下,60秒內未使用的連接將由客戶端終止。

reference config of spray:

​​

如果禁用空閒超時,我們的連接將保持活躍永遠除非遠程服務器設置一些超時後殺空閒連接(它可能是,但噴灑客戶應該確保我們總是可以得到一個新的連接,服從極限波紋)。

我們可以將主機連接池的大小限制爲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