Thanks Rajini

I still don't see the overlap between the two KIPS

KIP-235 allows an expansion of hostnames on the bootstrap list.

KIP-302 allows alternative IPs to be used to attempt a connection
(either at bootstrap and when processing the MetadataResponse) to a
given hostname.

A use case would be that of active/passive LB fronting the brokers.

Arguably, if Java honored the DNS-set TTL, and the TTL was low and on
subsequent requests, the order of IPs returned by the
InetAddress.getAllByName() was random, we may not need such an
enhancement.
In practice, a Java client can get stuck on a "bad" IP forever if it
only relies on the first IP returned.

HTH,
Edo

On 14 May 2018 at 16:23, Rajini Sivaram <rajinisiva...@gmail.com> wrote:
> Hi Edo,
>
> Thanks for the KIP. I think it will be good to include a diagram to make it
> easier to distinguish this scenario from that of KIP-235 without reading
> the PR.
>
> It may be worth considering if KIP-235 and this KIP could use a single
> config name with different values instead of two boolean configs:
>
> bootstrap.reverse.dns.lookup = true/false
> enable.all.dns.ips = true/false
>
> Not all values of (bootstrap.reverse.dns.lookup, enable.all.dns.ips) seem
> to make sense. And not all scenarios are handled. Even if we use multiple
> configs, it seems to me that we may want to name them differently.
>
> The possible combinations are:
>
> 1) Bootstrap
>
> a) No lookup
> b) Use all DNS entries with host name
> c) Use all DNS entries with canonical host name
>
> 2) Advertised listeners
>
> a) No lookup
> b) Use all DNS entries with host name
> c) Use all DNS entries with canonical host name
>
> The combinations that are enabled by the two boolean configs (
> bootstrap.reverse.dns.lookup, enable.all.dns.ips)  are:
>
>    - (false, false) => (1a, 2a)
>    - (true, false) => (1c, 2a)
>    - (false, true) => (1b, 2b)
>    - (true, true) => (??, 2b)
>
> It will be good if we can clearly identify which combinations we want to
> support and the scenarios where they may be useful. Perhaps (1a, 2a), (1c,
> 2a), (1b, 2b) and (1c, 2c) are useful?
>
>
> On Mon, May 14, 2018 at 2:58 PM, Skrzypek, Jonathan <
> jonathan.skrzy...@gs.com> wrote:
>
>> Ah, apologies didn't see there was already a decent amount of discussion
>> on this in the PR.
>>
>> This kind of sounds related to the environment you're running to me.
>> What is the rationale behind using the advertised listeners to do your
>> load balancing advertisement rather than a top level alias that has
>> everything ?
>>
>> It sounds like in your case there is a mismatch between bootstrap.servers
>> and advertised.listeners, and you want advertised.listeners to take
>> precedence and have the client iterate over what is returned by the broker.
>> So the extra parameter doesn't only have to do with DNS but it's also
>> appending from the broker, maybe the parameter name should reflect this ?
>>
>> Jonathan Skrzypek
>>
>>
>> -----Original Message-----
>> From: Skrzypek, Jonathan [Tech]
>> Sent: 14 May 2018 14:46
>> To: dev@kafka.apache.org
>> Subject: RE: [DISCUSS] KIP-302 - Enable Kafka clients to use all DNS
>> resolved IP addresses
>>
>> Hi,
>>
>> I see you noted the similarities with KIP-235.
>> But KIP-235 might also solve what this KIP is trying to achieve.
>>
>> When parsing bootstrap.servers, KIP-235 has the client add all underlying
>> hostnames and IPs.
>> And this happens before hitting the NetworkClient.
>>
>> So to me the client will try every single endpoint behind any
>> bootstrap.servers record.
>>
>> See https://github.com/apache/kafka/pull/4485/commits/24757eb7b0
>> 6bcf8c7d7649c85232c52b5d54f0e4#diff-89ef153462e64c250a21bd324ae1a851
>> which calls getAllByName like you suggested
>>
>> Jonathan Skrzypek
>>
>>
>> -----Original Message-----
>> From: Edoardo Comar [mailto:edoco...@gmail.com]
>> Sent: 14 May 2018 14:17
>> To: dev@kafka.apache.org
>> Subject: [DISCUSS] KIP-302 - Enable Kafka clients to use all DNS resolved
>> IP addresses
>>
>> Hi all,
>>
>> We just opened a KIP to add support for the client to use all IPs returned
>> by DNS for the brokers
>>
>> The details are here -
>>
>> https://urldefense.proofpoint.com/v2/url?u=https-3A__cwiki.a
>> pache.org_confluence_display_KAFKA_KIP-2D302-2B-2D-2BEnable-
>> 2BKafka-2Bclients-2Bto-2Buse-2Ball-2BDNS-2Bresolved-2BIP-
>> 2Baddresses&d=DwIBaQ&c=7563p3e2zaQw0AB1wrFVgyagb2IE5rTZOYPxL
>> xfZlX4&r=nNmJlu1rR_QFAPdxGlafmDu9_r6eaCbPOM0NM1EHo-E&m=EJafF
>> l1clRyolgtcu2uCc4_cIOJnlxb1r1n-D2Dti4k&s=C-UZ6KUG7JFiPD_
>> CnHczDOVqH9-XC5f_OFkw4BTNrI4&e=
>>
>> The JIRA and provisional PR  (where the discussion lead to the creation of
>> this KIP) are :
>>
>> https://urldefense.proofpoint.com/v2/url?u=https-3A__issues.
>> apache.org_jira_browse_KAFKA-2D6863&d=DwIBaQ&c=7563p3e2zaQw0
>> AB1wrFVgyagb2IE5rTZOYPxLxfZlX4&r=nNmJlu1rR_QFAPdxGlafmDu9_r6
>> eaCbPOM0NM1EHo-E&m=EJafFl1clRyolgtcu2uCc4_cIOJnlxb1r1n-
>> D2Dti4k&s=3Puqs5iYoPsw6hARQr6gvokdFE-H5USMiNVGOUtNkJI&e=
>>
>> https://urldefense.proofpoint.com/v2/url?u=https-3A__github.
>> com_apache_kafka_pull_4987&d=DwIBaQ&c=7563p3e2zaQw0AB1wrFVgy
>> agb2IE5rTZOYPxLxfZlX4&r=nNmJlu1rR_QFAPdxGlafmDu9_r6eaC
>> bPOM0NM1EHo-E&m=EJafFl1clRyolgtcu2uCc4_cIOJnlxb1r1n-D2Dti4k&
>> s=Hqn5dOgQy4-MHTIJLE49O8bNomry3SoGq9OVoHU-CRA&e=
>>
>> Looking forward to the community's feedback.
>> It would be amazing to have it voted by May 22nd :-) :-)
>>
>> Edoardo & Mickael
>>



-- 
"When the people fear their government, there is tyranny; when the
government fears the people, there is liberty." [Thomas Jefferson]

Reply via email to