hc-httpclient-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Oleg Kalnichevski <ol...@apache.org>
Subject Re: Http connection management/throttling for various applications sending GET requests to the same web server using a single web service
Date Sun, 06 Apr 2008 10:49:13 GMT

On Thu, 2008-04-03 at 22:22 -0700, Sujith Joseph wrote:
> Hi,
>    I am trying to implement a way of throttling http connections to a web
> server from a web service, using httpclient, so that the web server wouldn't
> be overloaded with more than 'x' concurrent connections, from my web
> service. (I also need to ensure that the http connections available in the
> pool are utilized efficiently).
> Within the web service, the http connections are created for various types
> of (client) applications and each such application has a preferred limit on
> the number of concurrent connections, it can create to the server. However
> if the connections requested by a particular application gets higher than
> its preferred limit, it could consume free http connections allocated to
> other applications. The thus eagerly acquired connections must be released,
> if the rest of the applications requests back for their allotted
> connections.
> To implement this, I am thinking of using a custom object pool of
> SimpleHttpConnectionManager objects for each of the applications and have a
> logic to maintain and regulate the number of these objects allocated/used,
> based on the load, during new connection requests. For each web server
> request, the plan is to create a connection from the
> SimpleHttpConnectionManager using a HttpClient and release it, after getting
> a response.


SimpleHttpConnectionManager holds only one connection object. There is
no benefit in pooling SCM instances. You can as well maintain a pool of
HTTP connections. 

> Can someone help me with a better solution for this? I know that the
> MultiTHreadedConnectionManager keeps a pool of connections, but I am not
> sure, whether we can dynamically manipulate the max connections to a host,
> after an MTCM object creation (My understanding on MTCM is that it creates
> as many threads as the max connection limit on its creation). Is there
> something in Httpclient4.x that might help me in this?

HttpClient 4.x API is much, much more modular and flexible. You'll need
to write a lot less custom code. 

>  I am also thinking of
> a custom implementation of the HttpConnectionManager for this. Please
> advise.

I do not see a way around writing a custom connection manager, which is
not an easy task.


> Thanks,
> Sujith

To unsubscribe, e-mail: httpclient-users-unsubscribe@hc.apache.org
For additional commands, e-mail: httpclient-users-help@hc.apache.org

View raw message