Jason Gustafson created KAFKA-2687:
--------------------------------------
Summary: Allow GroupMetadataRequest to return member metadata when
received by group coordinator
Key: KAFKA-2687
URL: https://issues.apache.org/jira/browse/KAFKA-2687
Project: Kafka
Issue Type: Improvement
Reporter: Jason Gustafson
Assignee: Jason Gustafson
Since the new consumer currently has no persistence in Zookeeper (pending
outcome of KAFKA-2017), there is no way for administrators to investigate group
status including getting the list of members in the group and their partition
assignments. We therefore propose to modify GroupMetadataRequest (previously
known as ConsumerMetadataRequest) to return group metadata when received by the
respective group's coordinator. When received by another broker, the request
will be handled as before: by only returning coordinator host and port
information.
{code}
GroupMetadataRequest => GroupId IncludeMetadata
GroupId => String
IncludeMetadata => Boolean
GroupMetadataResponse => ErrorCode Coordinator GroupMetadata
ErrorCode => int16
Coordinator => Id Host Port
Id => int32
Host => string
Port => int32
GroupMetadata => State ProtocolType Generation Protocol Leader Members
State => String
ProtocolType => String
Generation => int32
Protocol => String
Leader => String
Members => [Member MemberMetadata MemberAssignment]
Member => MemberIp ClientId
MemberIp => String
ClientId => String
MemberMetadata => Bytes
MemberAssignment => Bytes
{code}
The request schema includes a flag to indicate whether metadata is needed,
which saves clients from having to read all group metadata when they are just
trying to find the coordinator. This is important to reduce group overhead for
use cases which involve a large number of topic subscriptions (e.g. mirror
maker).
Tools will use the protocol type to determine how to parse metadata. For
example, when the protocolType is "consumer", the tool can use ConsumerProtocol
to parse the member metadata as topic subscriptions and partition assignments.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)