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]