I was waiting for more input after my last update.. what should be done now?
On Sat, Nov 4, 2017 at 2:19 PM, Clebert Suconic <clebert.suco...@gmail.com> wrote: > I have updated KIP-209. > > > Determined the \", \\ and \; meanings > > Also introduced the possibility of using $ to translate as system properties. > > I"m not using an BNF formal language here, as I don't think it's > needed.. it seems pretty obvious what it would be accomplished here. > > On Fri, Oct 27, 2017 at 2:05 PM, Colin McCabe <cmcc...@apache.org> wrote: >> On Tue, Oct 24, 2017, at 22:51, Michael André Pearce wrote: >>> Fair enough on URL encoding but as mentioned it is important to be able >>> to escape, I agree with backslash option. >>> >>> I would still like some form of prefix to the string to denote it is for >>> kafka. >> >> I don't think a prefix is necessary here. URLs have a prefix because >> there are multiple services which you could access (HTTP vs HTTPS, etc.) >> If you are passing a string to Kafka, the string is for Kafka, not for >> something else, so the issue doesn't exist. >> >> best, >> Colin >> >> >>> >>> E.g. kafka:: (if semicolon separators) >>> >>> Sent from my iPad >>> >>> > On 24 Oct 2017, at 17:27, Colin McCabe <cmcc...@apache.org> wrote: >>> > >>> > Hi Clebert, >>> > >>> > As some other people mentioned, a comma is probably not a great choice >>> > for the entry separator. We have a lot of configuration values that >>> > already include commas. How about using a semicolon instead? >>> > >>> > You also need an escaping system in case someone needs a semicolon (or >>> > whatever) that is part of a configuration key or configuration value. >>> > How about a simple backslash? And then if you want a literal backslash, >>> > you put in two backslashes. >>> > >>> >> On Thu, Oct 19, 2017, at 18:10, Michael André Pearce wrote: >>> >> Just another point to why I’d propose the below change to the string >>> >> format I propose , is an ability to encode the strings easily. >>> >> >>> >> We should note that it’s quite typical for serializers to user a >>> >> schematic registry where one of their properties they will need to set >>> >> would be in some form like: >>> >> >>> >> schema.registry.url=http://schema1:80,schema2:80/api >>> >> >>> >> So being able to safely encode this is important. >>> >> >>> >> Sent from my iPhone >>> >> >>> >>> On 20 Oct 2017, at 01:47, Michael André Pearce >>> >>> <michael.andre.pea...@me.com> wrote: >>> >>> >>> >>> Hi Clebert >>> >>> >>> >>> Great kip! >>> >>> >>> >>> Instead of ‘;’ to separate the host sections with the params section >>> >>> could it be a ‘?’ >>> >>> >>> >>> And like wise ‘,’ param separator could this be ‘&’ (keep the ‘,’ for >>> >>> host separator just makes easier to distinguish) >>> >>> >>> >>> Also this was it makes it easier to encode params etc as can just re >>> >>> use url encoders. >>> > >>> > Please, no. URL encoders will mangle a lot of things horribly (like >>> > less than signs, greater than signs, etc.) We should not make this a >>> > URL or pseudo-URL (see the discussion above). We should make it clear >>> > that this is not a URL. >>> > >>> >> Invalid conversions would throw InvalidArgumentException (with a >>> >> description of the invalid conversion) >>> >> Invalid parameters would throw InvalidArgumentException (with the name >>> >> of the invalid parameter). >>> > >>> > This will cause a lot of compatibility problems, right? If I switch >>> > back and forth between two Kafka versions, they will support slightly >>> > different sets of configuration parameters. It seems saner to simply >>> > ignore configuration parameters that we don't understand, like we do >>> > now. >>> > >>> > best, >>> > Colin >>> > >>> > >>> >>> >>> >>> Also as like many systems it typical to note what the connection string >>> >>> is for with a prefix eg ‘kafka://‘ >>> >>> >>> >>> Just makes it obvious when an app has a list of connection strings in >>> >>> their runtime properties which is for which technology. >>> >>> >>> >>> Eg example connection string would be: >>> >>> >>> >>> kafka://host1:port1,host2:port2?param1=value1&parm2=value2 >>> >>> >>> >>> Cheers >>> >>> Mike >>> >>> >>> >>> Sent from my iPhone >>> >>> >>> >>>> On 19 Oct 2017, at 19:29, Clebert Suconic <clebert.suco...@gmail.com> >>> >>>> wrote: >>> >>>> >>> >>>> Do I have to do anything here? >>> >>>> >>> >>>> I wonder how long I need to wait before proposing the vote. >>> >>>> >>> >>>> On Tue, Oct 17, 2017 at 1:17 PM, Clebert Suconic >>> >>>> <clebert.suco...@gmail.com> wrote: >>> >>>>> I had these updates in already... you just changed the names at the >>> >>>>> string.. but it was pretty much the same thing I think... I had taken >>> >>>>> you suggestions though. >>> >>>>> >>> >>>>> >>> >>>>> The Exceptions.. these would be implementation details... all I wanted >>> >>>>> to make sure is that users would get the name of the invalid parameter >>> >>>>> as part of a string on a message. >>> >>>>> >>> >>>>> On Tue, Oct 17, 2017 at 3:15 AM, Satish Duggana >>> >>>>> <satish.dugg...@gmail.com> wrote: >>> >>>>>> You may need to update KIP with the details discussed in this thread >>> >>>>>> in >>> >>>>>> proposed changes section. >>> >>>>>> >>> >>>>>>>> My proposed format for the connection string would be: >>> >>>>>>>> IP1:host1,IP2:host2,...IPN:hostn;parameterName=value1;parameterName2=value2;... >>> >>>>>> parameterNameN=valueN >>> >>>>>> Format should be >>> >>>>>> host1:port1,host2:port2,…host:portn;param-name1=param-val1,.. >>> >>>>>> >>> >>>>>>>> Invalid conversions would throw InvalidArgumentException (with a >>> >>>>>> description of the invalid conversion) >>> >>>>>>>> Invalid parameters would throw InvalidArgumentException (with the >>> >>>>>>>> name of >>> >>>>>> the invalid parameter). >>> >>>>>> >>> >>>>>> Should throw IllegalArgumentException with respective message. >>> >>>>>> >>> >>>>>> Thanks, >>> >>>>>> Satish. >>> >>>>>> >>> >>>>>> On Tue, Oct 17, 2017 at 4:46 AM, Clebert Suconic >>> >>>>>> <clebert.suco...@gmail.com> >>> >>>>>> wrote: >>> >>>>>> >>> >>>>>>> That works. >>> >>>>>>> >>> >>>>>>>> On Mon, Oct 16, 2017 at 6:59 PM Ted Yu <yuzhih...@gmail.com> wrote: >>> >>>>>>>> >>> >>>>>>>> Can't you use IllegalArgumentException ? >>> >>>>>>>> >>> >>>>>>>> Some example in current code base: >>> >>>>>>>> >>> >>>>>>>> clients/src/main/java/org/apache/kafka/clients/Metadata.java: >>> >>>>>>>> throw new IllegalArgumentException("Max time to wait for metadata >>> >>>>>>> updates >>> >>>>>>>> should not be < 0 milliseconds"); >>> >>>>>>>> >>> >>>>>>>> On Mon, Oct 16, 2017 at 3:06 PM, Clebert Suconic < >>> >>>>>>>> clebert.suco...@gmail.com> >>> >>>>>>>> wrote: >>> >>>>>>>> >>> >>>>>>>>> I updated the wiki with the list on the proposed arguments. >>> >>>>>>>>> >>> >>>>>>>>> I also changed it to include a new Exception class that would be >>> >>>>>>>>> named >>> >>>>>>>>> InvalidParameterException (since I couldn't find an existing >>> >>>>>>>>> Exception >>> >>>>>>>>> class that I could reuse into this). (I could review the name or >>> >>>>>>>>> the >>> >>>>>>>>> exception of course.. just my current proposal) >>> >>>>>>>>> >>> >>>>>>>>>> On Mon, Oct 16, 2017 at 5:55 PM, Jakub Scholz <ja...@scholz.cz> >>> >>>>>>>>>> wrote: >>> >>>>>>>>>> Hi Clebert, >>> >>>>>>>>>> >>> >>>>>>>>>> I think it would be good if this could cover not only >>> >>>>>>>>>> KafkaConsumer >>> >>>>>>> and >>> >>>>>>>>>> KafkaProducer but also the AdminClient. So that all three can be >>> >>>>>>>>> configured >>> >>>>>>>>>> the same way. >>> >>>>>>>>>> >>> >>>>>>>>>> The bootstrap servers are a list - you can provide multiple >>> >>>>>>>>>> bootstrap >>> >>>>>>>>>> servers. Maybe you add an example of how that will be >>> >>>>>>>>>> configured. I >>> >>>>>>>>> assume >>> >>>>>>>>>> it will be >>> >>>>>>>>>> "host:port,host2:port2;parameterName=value1;parameterName2=value2" >>> >>>>>>> but >>> >>>>>>>>> it >>> >>>>>>>>>> would be great to have it documented. >>> >>>>>>>>>> >>> >>>>>>>>>> Thanks & Regards >>> >>>>>>>>>> Jakub >>> >>>>>>>>>> >>> >>>>>>>>>> On Mon, Oct 16, 2017 at 11:30 PM, Clebert Suconic < >>> >>>>>>>>> clebert.suco...@gmail.com >>> >>>>>>>>>>> wrote: >>> >>>>>>>>>> >>> >>>>>>>>>>> I would like to start a discussion about KIP-209 >>> >>>>>>>>>>> (https://cwiki.apache.org/confluence/display/KAFKA/KIP- >>> >>>>>>>>>>> 209+-+Connection+String+Support) >>> >>>>>>>>>>> >>> >>>>>>>>>>> This is an extension of my previous thread: >>> >>>>>>>>>>> http://mail-archives.apache.org/mod_mbox/kafka-dev/201710. >>> >>>>>>>>>>> mbox/%3cCAKF+bsoFbN13D-u20tUsP6G+aHX4BUNk=S8M4KyJxAt_ >>> >>>>>>>>>>> oyv...@mail.gmail.com%3e >>> >>>>>>>>>>> >>> >>>>>>>>>>> this could make the bootstrap of a consumer or producer similar >>> >>>>>>>>>>> to >>> >>>>>>>>>>> what users are already used when connecting into other systems, >>> >>>>>>> being >>> >>>>>>>>>>> a simple addition to Producer and Consumer, without breaking any >>> >>>>>>>>>>> previous client usage. >>> >>>>>>>>>>> >>> >>>>>>>>>>> >>> >>>>>>>>>>> -- >>> >>>>>>>>>>> Clebert Suconic >>> >>>>>>>>>>> >>> >>>>>>>>> >>> >>>>>>>>> >>> >>>>>>>>> >>> >>>>>>>>> -- >>> >>>>>>>>> Clebert Suconic >>> >>>>>>>>> >>> >>>>>>>> >>> >>>>>>> -- >>> >>>>>>> Clebert Suconic >>> >>>>>>> >>> >>>>> >>> >>>>> >>> >>>>> >>> >>>>> -- >>> >>>>> Clebert Suconic >>> >>>> >>> >>>> >>> >>>> >>> >>>> -- >>> >>>> Clebert Suconic > > > > -- > Clebert Suconic -- Clebert Suconic