Jorge, Would you consider also adding `listGroupOffsets` to this KIP?
thanks dan On Tue, Dec 12, 2017 at 9:39 AM, Jason Gustafson <ja...@confluent.io> wrote: > Hi Colin, > > They do share the same namespace. We have a "protocol type" field in the > JoinGroup request to make sure that all members are of the same kind. Very > roughly what I was thinking is something like this. First we introduce an > interface for deserialization: > > interface GroupMetadataDeserializer<Metadata, Assignment> { > String protocolType(); > Metadata desrializeMetadata(ByteBuffer); > Assignment deserializeAssignment(ByteBuffer); > } > > Then we add some kind of generic container: > > class MemberMetadata<Metadata, Assignment> { > Metadata metadata; > Assignment assignment; > } > > Then we have two APIs: one generic and one specific to consumer groups: > > <M, A> Map<String, MemberMetadata<M,A>> describeGroup(String groupId, > GroupMetadataDeserializer<M, A> deserializer); > > Map<String, ConsumerGroupMetadata> describeConsumerGroup(String groupId); > > (This is just a sketch, so obviously we can change them to use futures or > to batch or whatever.) > > I think it would be fine to not provide a connect-specific API since this > usage will probably be limited to Connect itself. > > Thanks, > Jason > > > On Mon, Dec 11, 2017 at 9:15 PM, Colin McCabe <cmcc...@apache.org> wrote: > > > Sorry... this is probably a silly question, but do Kafka Connect groups > > share a namespace with consumer groups? If we had a separate API for > > Kafka Connect groups vs. Consumer groups, would that make sense? Or > > should we unify them? > > > > best, > > Colin > > > > > > On Mon, Dec 11, 2017, at 16:11, Jason Gustafson wrote: > > > Hi Jorge, > > > > > > Kafka group management is actually more general than consumer groups > > > (e.g. > > > there are kafka connect groups). If we are adding these APIs, I would > > > suggest we consider the more general protocol and how to expose > > > group-protocol-specific metadata. For example, it might be reasonable > to > > > have both an API to access to the low-level bytes as well as some > > > higher-level convenience APIs for accessing consumer groups. > > > > > > Thanks, > > > Jason > > > > > > On Mon, Dec 4, 2017 at 4:07 PM, Matthias J. Sax <matth...@confluent.io > > > > > wrote: > > > > > > > Jorge, > > > > > > > > is there any update regarding this KIP? > > > > > > > > > > > > -Matthias > > > > > > > > On 11/17/17 9:14 AM, Guozhang Wang wrote: > > > > > Hello Jorge, > > > > > > > > > > I made a pass over the wiki, and here are a few comments: > > > > > > > > > > 1. First, regarding to Tom's comment #2 above, I think if we are > only > > > > going > > > > > to include the String groupId. Then it is Okay to keep as a String > > than > > > > > using a new wrapper class. However, I think we could include the > > > > > protocol_type returned from the ListGroupsResponse along with the > > > > groupId. > > > > > This is a very useful information to tell which consumer groups are > > from > > > > > Connect, which ones are from Streams, which ones are > user-customized > > etc. > > > > > With this, it is reasonable to keep a wrapper class. > > > > > > > > > > 2. In ConsumerDescription, could we also add the state, > protocol_type > > > > > (these two are form DescribeGroupResponse), and the Node > coordinator > > > > (this > > > > > may be returned from the AdminClient itself) as well? This is also > > for > > > > > information consistency with the old client (note that > protocol_type > > was > > > > > called assignment_strategy there). > > > > > > > > > > 3. With 1) / 2) above, maybe we can rename "ConsumerGroupListing" > to > > > > > "ConsumerGroupSummary" and make "ConsumerGroupDescription" an > > extended > > > > > class of the former with the additional fields? > > > > > > > > > > > > > > > > > > > > Guozhang > > > > > > > > > > > > > > > On Tue, Nov 7, 2017 at 2:13 AM, Jorge Esteban Quilcate Otoya < > > > > > quilcate.jo...@gmail.com> wrote: > > > > > > > > > >> Hi Tom, > > > > >> > > > > >> 1. You're right. I've updated the KIP accordingly. > > > > >> 2. Yes, I have add it to keep consistency, but I'd like to know > what > > > > others > > > > >> think about this too. > > > > >> > > > > >> Cheers, > > > > >> Jorge. > > > > >> > > > > >> El mar., 7 nov. 2017 a las 9:29, Tom Bentley (< > > t.j.bent...@gmail.com>) > > > > >> escribió: > > > > >> > > > > >>> Hi again Jorge, > > > > >>> > > > > >>> A couple of minor points: > > > > >>> > > > > >>> 1. ConsumerGroupDescription has the member `name`, but everywhere > > else > > > > >> that > > > > >>> I've seen the term "group id" is used, so perhaps calling it "id" > > or > > > > >>> "groupId" would be more consistent. > > > > >>> 2. I think you've added ConsumerGroupListing for consistency with > > > > >>> TopicListing. For topics it makes sense because at well as the > name > > > > there > > > > >>> is whether the topic is internal. For consumer groups, though > > there is > > > > >> just > > > > >>> the name and having a separate ConsumerGroupListing seems like it > > > > doesn't > > > > >>> add very much, and would mostly get in the way when using the > API. > > I > > > > >> would > > > > >>> be interested in what others thought about this. > > > > >>> > > > > >>> Cheers, > > > > >>> > > > > >>> Tom > > > > >>> > > > > >>> On 6 November 2017 at 22:16, Jorge Esteban Quilcate Otoya < > > > > >>> quilcate.jo...@gmail.com> wrote: > > > > >>> > > > > >>>> Thanks for the feedback! > > > > >>>> > > > > >>>> @Ted Yu: Links added. > > > > >>>> > > > > >>>> KIP updated. Changes: > > > > >>>> > > > > >>>> * `#listConsumerGroups(ListConsumerGroupsOptions options)` > added > > to > > > > >> the > > > > >>>> API. > > > > >>>> * `DescribeConsumerGroupResult` and `ConsumerGroupDescription` > > classes > > > > >>>> described. > > > > >>>> > > > > >>>> Cheers, > > > > >>>> Jorge. > > > > >>>> > > > > >>>> > > > > >>>> > > > > >>>> > > > > >>>> El lun., 6 nov. 2017 a las 20:28, Guozhang Wang (< > > wangg...@gmail.com > > > > >) > > > > >>>> escribió: > > > > >>>> > > > > >>>>> Hi Matthias, > > > > >>>>> > > > > >>>>> You meant "list groups" I think? > > > > >>>>> > > > > >>>>> Guozhang > > > > >>>>> > > > > >>>>> On Mon, Nov 6, 2017 at 11:17 AM, Matthias J. Sax < > > > > >>> matth...@confluent.io> > > > > >>>>> wrote: > > > > >>>>> > > > > >>>>>> The main goal of this KIP is to enable decoupling > > StreamsResetter > > > > >>> from > > > > >>>>>> core module. For this case (ie, using AdminClient within > > > > >>>>>> StreamsResetter) we get the group.id from the user as command > > line > > > > >>>>>> argument. Thus, I think the KIP is useful without "describe > > group" > > > > >>>>>> command to. > > > > >>>>>> > > > > >>>>>> I am happy to include "describe group" command in the KIP. > Just > > > > >> want > > > > >>> to > > > > >>>>>> point out, that there is no reason to insist on it IMHO. > > > > >>>>>> > > > > >>>>>> > > > > >>>>>> -Matthias > > > > >>>>>> > > > > >>>>>> On 11/6/17 7:06 PM, Guozhang Wang wrote: > > > > >>>>>>> A quick question: I think we do not yet have the `list > consumer > > > > >>>> groups` > > > > >>>>>>> func as in the old AdminClient. Without this `describe group` > > > > >> given > > > > >>>> the > > > > >>>>>>> group id would not be very useful. Could you include this as > > well > > > > >>> in > > > > >>>>> your > > > > >>>>>>> KIP? More specifically, you can look at > > > > >> kafka.admin.AdminClientfor > > > > >>>> more > > > > >>>>>>> details on the APIs. > > > > >>>>>>> > > > > >>>>>>> > > > > >>>>>>> Guozhang > > > > >>>>>>> > > > > >>>>>>> On Mon, Nov 6, 2017 at 7:22 AM, Ted Yu <yuzhih...@gmail.com> > > > > >>> wrote: > > > > >>>>>>> > > > > >>>>>>>> Please fill out Discussion thread and JIRA fields. > > > > >>>>>>>> > > > > >>>>>>>> Thanks > > > > >>>>>>>> > > > > >>>>>>>> On Mon, Nov 6, 2017 at 2:02 AM, Tom Bentley < > > > > >>> t.j.bent...@gmail.com> > > > > >>>>>> wrote: > > > > >>>>>>>> > > > > >>>>>>>>> Hi Jorge, > > > > >>>>>>>>> > > > > >>>>>>>>> Thanks for the KIP. A few initial comments: > > > > >>>>>>>>> > > > > >>>>>>>>> 1. The AdminClient doesn't have any API like > > > > >>> `listConsumerGroups()` > > > > >>>>>>>>> currently, so in general how does a client know the group > ids > > > > >> it > > > > >>> is > > > > >>>>>>>>> interested in? > > > > >>>>>>>>> 2. Could you fill in the API of > DescribeConsumerGroupResult, > > > > >> just > > > > >>>> so > > > > >>>>>>>>> everyone knows exactly what being proposed. > > > > >>>>>>>>> 3. Can you describe the ConsumerGroupDescription class? > > > > >>>>>>>>> 4. Probably worth mentioning that this will use > > > > >>>>>>>>> DescribeGroupsRequest/Response, and also enumerating the > > error > > > > >>>> codes > > > > >>>>>>>> that > > > > >>>>>>>>> can return (or, equivalently, enumerate the exceptions > throw > > > > >> from > > > > >>>> the > > > > >>>>>>>>> futures obtained from the DescribeConsumerGroupResult). > > > > >>>>>>>>> > > > > >>>>>>>>> Cheers, > > > > >>>>>>>>> > > > > >>>>>>>>> Tom > > > > >>>>>>>>> > > > > >>>>>>>>> On 6 November 2017 at 08:19, Jorge Esteban Quilcate Otoya < > > > > >>>>>>>>> quilcate.jo...@gmail.com> wrote: > > > > >>>>>>>>> > > > > >>>>>>>>>> Hi everyone, > > > > >>>>>>>>>> > > > > >>>>>>>>>> I would like to start a discussion on KIP-222 [1] based on > > > > >> issue > > > > >>>>> [2]. > > > > >>>>>>>>>> > > > > >>>>>>>>>> Looking forward to feedback. > > > > >>>>>>>>>> > > > > >>>>>>>>>> [1] > > > > >>>>>>>>>> https://cwiki.apache.org/confluence/pages/viewpage. > > > > >>>>>>>>> action?pageId=74686265 > > > > >>>>>>>>>> [2] https://issues.apache.org/jira/browse/KAFKA-6058 > > > > >>>>>>>>>> > > > > >>>>>>>>>> Cheers, > > > > >>>>>>>>>> Jorge. > > > > >>>>>>>>>> > > > > >>>>>>>>> > > > > >>>>>>>> > > > > >>>>>>> > > > > >>>>>>> > > > > >>>>>>> > > > > >>>>>> > > > > >>>>>> > > > > >>>>> > > > > >>>>> > > > > >>>>> -- > > > > >>>>> -- Guozhang > > > > >>>>> > > > > >>>> > > > > >>> > > > > >> > > > > > > > > > > > > > > > > > > > > > > > > > >