[ 
https://issues.apache.org/jira/browse/HTTPCLIENT-2180?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17423289#comment-17423289
 ] 

Carter Kozak commented on HTTPCLIENT-2180:
------------------------------------------

There's a question of how long that connection will be allowed to sit idle by 
the server, if at all. In some scenarios we won't be able to create connections 
as fast as the server times them out, in that case we'll effectively DoS the 
server with TLS overhead.
It's unfortunate that we don't necessarily get insight into the servers 
decision making process for persistent connections as the Keep-Alive header 
isn't required, and may not provide timeout info.

What happens if the server sends Connection:close or has a very low idle 
timeout (3-5 seconds is more common than I'd like)?

I recall that some servers/proxies close connections on >=400 responses, but I 
don't remember specific examples, it may not be common (or I could be 
misremembering).

> Pre-init minimum number of connections
> --------------------------------------
>
>                 Key: HTTPCLIENT-2180
>                 URL: https://issues.apache.org/jira/browse/HTTPCLIENT-2180
>             Project: HttpComponents HttpClient
>          Issue Type: New Feature
>          Components: HttpClient (async), HttpClient (classic)
>            Reporter: Anurag Agarwal
>            Priority: Minor
>              Labels: volunteers-wanted
>             Fix For: Future
>
>
> Most of the applications suffer from a problem of cold start where we don't 
> have connections created at the start of the application and thus the first 
> few requests suffer by making a lot of connections.
> During deployment this can even pile up a lot of not completed request and 
> may lead to losses.
> One suggestion I had in mind is to create few connections before the 
> application has begun from the intended endpoints.
> Also sometimes the nautre of your traffic can be spiky in which scenario 
> opening and closing a lot of connections also doesn't make sense.
>  
> These can be solved with either or both of the suggestions:
>  # Have a minConnectionPerHost policy in connection pool which won't let 
> connection pool for a host to go below this number or make a new connection 
> when it does. At the start of the http client these minimum connections will 
> be created to the end services.
>  # Provide an easy mechanism for use to create connections via 
> ConnectionManager. Currently in PoolingAsyncConnectionManager one must give 
> ConnectionInitiator which make it difficult to directly use the connection 
> manager to create connections.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to