On Wed, Jun 22, 2016 at 11:26 AM, Oleg Kalnichevski <ol...@apache.org> wrote:
> On Wed, 2016-06-22 at 07:07 -0400, Benson Margulies wrote:
>> On Wed, Jun 22, 2016 at 3:05 AM, Stefan Magnus Landrø
>> <stefan.lan...@gmail.com> wrote:
>> > Hi Benson,
>> >
>> > Have you considered implementing a custom
>> > https://hc.apache.org/httpcomponents-client-ga/httpclient/apidocs/org/apache/http/conn/DnsResolver.html
>> > that handles DNS changes in a better way than the default implementation?
>> > You could probably use http://www.xbill.org/dnsjava/ and lookup names
>> > directly with the amazon NS?
>>
>> Thanks for reminding me to ask about that. Does HC call the resolver
>> as part of deciding whether to keep a connection or not?
>
> No, it does not, but one could make it do so by using a custom
> ConnectionReuseStrategy.

The javadoc for ConnectionReuseStrategy implies that it is called at
the end of the request. Am I misreading it?

>
> Oleg
>
>> The problem
>> as we see it is this: the DNS mapping for an ELB changes, and a minute
>> later the connections to it become useless but don't necessarily get
>> properly closed with a FIN by the ELB. I've written some goofy code
>> that notices when the address resolution changes for any of the ELB's
>> we care about, and when it does it calls 'closeIdleConnections' with a
>> time of 0. On the other hand, I don't think we're currently having any
>> problems getting InetAddress.getByName to keep up with Amazon, but
>> your suggestion would be safer.
>>
>>
>> >
>> > Stefan
>> >
>> > 2016-06-20 19:57 GMT+02:00 Benson Margulies <bimargul...@gmail.com>:
>> >
>> >> We use the async http components library to connect various components
>> >> in a system that is deployed, in some cases, on AWS. When it's
>> >> deployed on AWS, there are ELBs involved.
>> >>
>> >> Like some other people, we've having various trauma dealing with the
>> >> very dynamic environment of AWS ELBs, which includes constant DNS
>> >> changes and some other issues. So far, we've been making our HC
>> >> configuration more and more complex. I'm wondering if we should back
>> >> off and make it simpler -- make a new connection for each request.
>> >> Obviously, this will be somewhat slower and more expensive, but at the
>> >> moment we might prefer a slower and more expensive approach that works
>> >> to one that occasionally gets lost.
>> >>
>> >> I appreciate that even making new connections all the time won't
>> >> compensate for all possible DNS problems -- if Java itself caches a
>> >> stale name->address translation, making a new connection will fail
>> >> just as effectively as anything else.
>> >>
>> >> Does anyone out there have advice to share (other than running away from
>> >> ELB)?
>> >>
>> >> ---------------------------------------------------------------------
>> >> To unsubscribe, e-mail: httpclient-users-unsubscr...@hc.apache.org
>> >> For additional commands, e-mail: httpclient-users-h...@hc.apache.org
>> >>
>> >>
>> >
>> >
>> > --
>> > BEKK Open
>> > http://open.bekk.no
>> >
>> > TesTcl - a unit test framework for iRules
>> > http://testcl.com
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: httpclient-users-unsubscr...@hc.apache.org
>> For additional commands, e-mail: httpclient-users-h...@hc.apache.org
>>
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: httpclient-users-unsubscr...@hc.apache.org
> For additional commands, e-mail: httpclient-users-h...@hc.apache.org
>

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

Reply via email to