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

Oleg Kalnichevski commented on HTTPCLIENT-2180:
-----------------------------------------------

[~anuragagarwal56] I see the problem. So, really want to be able to pre-warm 
complex routes with HTTP tunneling, proxy authentication and all bells and 
whistles? In this case I see no way around executing a batch of cheap request 
such as OPTIONS or HEAD and delaying endpoint release until completion of the 
entire batch. What you will likely need is a custom method similar to 
`#doExecute` that can execute multiple requests as a single operation. It is 
not going to be easy but it is doable.

https://github.com/apache/httpcomponents-client/blob/master/httpclient5/src/main/java/org/apache/hc/client5/http/impl/async/InternalAbstractHttpAsyncClient.java#L165

Oleg

> 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