[
https://issues.apache.org/jira/browse/HTTPCLIENT-2180?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17423534#comment-17423534
]
Anurag Agarwal commented on HTTPCLIENT-2180:
--------------------------------------------
So I have tried my hands on with the second approach and it works. Simple and
beautiful rings all the bells and whistles of connection creation :P
My sample program first enables the warmup, hits some http requests which
creates connections and stores in the pool without reusing them. Post that I
disable the mode and runs few more requests and they are not creating new
connections and using from the pool.
More to that the second approach also give users control on how they want to
handle the failures, cancellations and will even give them the liberty to
configure the type and the route of the request as they please. Some of
external routes may also offer ping endpoints via POST API, configuring
everything will just be in user's control. All they will need is to enable and
disable the warmup mode themselves.
I will now test this thing on a staging box for my application to see if it
solves the cold start problem I was facing earlier and then will submit the
merge request for both the http core and the client.
> 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]