You are viewing a plain text version of this content. The canonical link for it is here.
Posted to httpclient-users@hc.apache.org by Shawn Heisey <ap...@elyograg.org> on 2017/11/02 05:34:47 UTC
maxPerRoute -- what *exactly* defines a route?
One of the settings that you can set when creating HttpClient objects is
the maximum connections per route on the connection manager. Increasing
this value is part of making HttpClient capable of handling many
threads/connections at once.
The exact definition of a route is not stated in the javadoc for the
builder class, and I haven't been able to find it anywhere else either.
I did find this SO post, but I don't see an answer there that's clear.
The HttpRoute javadoc may contain the answer, but if it does, it's not
straightforward.
https://stackoverflow.com/questions/12028635/what-is-the-meaning-of-per-route-basis-in-poolingclientconnectionmanager
A section of documentation from an entirely different project (nodejs)
was given. A different project may have a very different definition of
a route than THIS project.
So I'm looking for what the definition of a route is for httpcomponents,
and would like to see that information added to the javadoc on the
Builder class(es) and the connection manager class(es).
If I were to open an issue for this, would it go on HTTPCLIENT or
HTTPCORE? Should I open an issue?
I suspect that the definition of a route is probably the
"protocol://host:port" combination, and based on the info about nodejs
that was given, may also include the type of request
(GET/POST/HEAD/OPTIONS/etc). It might only take the host into account
and ignore the protocol and port. It might have more information, such
as a defined proxy server, authentication parameters, etc. Can anyone
confirm or deny? If the host is involved, I would also need to know
whether it is compared as given, or if any conversion (lowercasing, IP
address resolution, finding FQDN, etc.) happens before comparison.
If a detailed answer to this question is in a FAQ somewhere, perhaps
that should be referenced by javadoc and in other places.
Thanks,
Shawn
---------------------------------------------------------------------
To unsubscribe, e-mail: httpclient-users-unsubscribe@hc.apache.org
For additional commands, e-mail: httpclient-users-help@hc.apache.org
Re: maxPerRoute -- what *exactly* defines a route?
Posted by Oleg Kalnichevski <ol...@apache.org>.
On Wed, 2017-11-01 at 23:34 -0600, Shawn Heisey wrote:
> One of the settings that you can set when creating HttpClient objects
> is
> the maximum connections per route on the connection
> manager. Increasing
> this value is part of making HttpClient capable of handling many
> threads/connections at once.
>
> The exact definition of a route is not stated in the javadoc for the
> builder class, and I haven't been able to find it anywhere else
> either.
>
> I did find this SO post, but I don't see an answer there that's
> clear.
> The HttpRoute javadoc may contain the answer, but if it does, it's
> not
> straightforward.
>
> https://stackoverflow.com/questions/12028635/what-is-the-meaning-of-p
> er-route-basis-in-poolingclientconnectionmanager
>
> A section of documentation from an entirely different project
> (nodejs)
> was given. A different project may have a very different definition
> of
> a route than THIS project.
>
> So I'm looking for what the definition of a route is for
> httpcomponents,
> and would like to see that information added to the javadoc on the
> Builder class(es) and the connection manager class(es).
>
Connection routing is described here
http://hc.apache.org/httpcomponents-client-4.5.x/tutorial/html/connmgmt
.html#d5e351
Essentially, an HTTP route represents an address of the target host
along with an optional list of addresses of intermediate proxies (or
hops)
An address is either DNS + port or IP + port.
client -> target (direct route)
client -> proxy -> target (route by proxy)
client -> proxy (tunnel) -> target (tunneled route)
client -> proxy1 (tunnel) -> proxy2 (tunnel) -> target
(complex tunneled route)
> If I were to open an issue for this, would it go on HTTPCLIENT or
> HTTPCORE? Should I open an issue?
>
It should go on HTTPCLIENT. Please do feel to submit improvements by
all of means.
Oleg
> I suspect that the definition of a route is probably the
> "protocol://host:port" combination, and based on the info about
> nodejs
> that was given, may also include the type of request
> (GET/POST/HEAD/OPTIONS/etc). It might only take the host into
> account
> and ignore the protocol and port. It might have more information,
> such
> as a defined proxy server, authentication parameters, etc. Can
> anyone
> confirm or deny? If the host is involved, I would also need to know
> whether it is compared as given, or if any conversion (lowercasing,
> IP
> address resolution, finding FQDN, etc.) happens before comparison.
>
> If a detailed answer to this question is in a FAQ somewhere, perhaps
> that should be referenced by javadoc and in other places.
>
> Thanks,
> Shawn
>
> ---------------------------------------------------------------------
> 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