+1... I will update the KIP by the weekend...

(I am taking this on my spare time.. although I can rush it if anyone
needs it sooner).

On Tue, Oct 24, 2017 at 12:27 PM, 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

Reply via email to