hc-httpclient-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Sam Crawford <samcrawf...@gmail.com>
Subject Re: Using ThreadSafeClientConnManager
Date Thu, 04 Aug 2011 14:05:09 GMT
Forgive the poor wording - I meant to say "The HTTP/1.1 RFC says you
should make _at most_ 2 connections per target host".


On 4 August 2011 15:03, Sam Crawford <samcrawford@gmail.com> wrote:
> Yes, absolutely. The HTTP/1.1 RFC says you should make 2 connections
> per host, and HttpClient obeys that strictly out-of-the-box (side
> note: web browsers do not anymore).
>
> A 'route' in HttpClient is typically defined as protocol (HTTP/HTTPS)
> + host + port. I see there are some additional options in 4.1.x for
> tunneling, but the three I listed will be the primary ones.
>
> See section 2.8.4 in
> http://hc.apache.org/httpcomponents-client-ga/tutorial/html/connmgmt.html.
> You'll want to change either the default max per route or the max for
> an individual route.
>
> Hope this helps,
>
> Sam
>
>
> On 4 August 2011 14:55, KARR, DAVID (ATTSI) <dk068x@att.com> wrote:
>>> -----Original Message-----
>>> From: Russell Brown [mailto:russelldb@basho.com]
>>> Sent: Thursday, August 04, 2011 12:04 AM
>>> To: HttpClient User Discussion
>>> Subject: Re: Using ThreadSafeClientConnManager
>>>
>>> On 4 Aug 2011, at 01:18, Mohit Anchlia wrote:
>>>
>>> > I am trying to understand these 2:
>>> >
>>> > ClientConnectionManager cm = new ThreadSafeClientConnManager();
>>> > cm.setMaxTotal(100);
>>> > HttpClient httpClient = new DefaultHttpClient(cm);
>>> >
>>> > Have couple of questions:
>>> >
>>> > 1) Can one httpClient object be shared accross multiple threads doing
>>> > post/get/delete/put requests?
>>>
>>> Yes.
>>>
>>> > 2) What happens in above case if there are more concurrent threads
>>> say
>>> > 200 than actual no. of connections? So what happens if 200 threads
>>> > trying to use httpClient object (shared). But we created only 100
>>> > connections. Does it wait on .execute if all connections are busy?
>>>
>>> The thread attempting to acquire a connection blocks. If you have set a
>>> timeout then it blocks until the timeout is reached and an exception is
>>> thrown.
>>>
>>> Worth noting, in your above snippet the max connections per route will
>>> only be *2*.
>>
>> Sorry to the OP to hijack this question, but I'd like to understand a little more
about this.  Is a "route" defined as the path to a particular host?  If all of my connections
go to the same host, and I'll have numerous threads trying to make that connection, do I need
to change some default to allow more than 2 connections per "route"?
>>
>>> > Can somone please help me understand?
>>> >
>>> > ---------------------------------------------------------------------
>>> > To unsubscribe, e-mail: httpclient-users-unsubscribe@hc.apache.org
>>> > For additional commands, e-mail: httpclient-users-help@hc.apache.org
>>> >
>>>
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: httpclient-users-unsubscribe@hc.apache.org
>>> For additional commands, e-mail: httpclient-users-help@hc.apache.org
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: httpclient-users-unsubscribe@hc.apache.org
>> For additional commands, e-mail: httpclient-users-help@hc.apache.org
>>
>>
>

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


Mime
View raw message