THIS IS A TEST INSTANCE. ALL YOUR CHANGES WILL BE LOST!!!!
...
Code Block | ||
---|---|---|
| ||
{ "apiKey": TBD, "type": "request", "listeners": ["zkBroker", "broker"], "name": "ConsumerGroupHeartbeatRequest", "validVersions": "0", "flexibleVersions": "0+", "fields": [ { "name": "GroupId", "type": "string", "versions": "0+", "entityType": "groupId", "about": "The group identifier." }, { "name": "MemberId", "type": "string", "versions": "0+", "about": "The member id generated by the server. The member id must be kept during the entire lifetime of the member." }, { "name": "MemberEpoch", "type": "int32", "versions": "0+", "default": "-1", "about": "The current member epoch; 0 to join the group; -1 to leave the group." }, { "name": "InstanceId", "type": "string", "versions": "0+", "nullableVersions": "0+", "default": "null", "about": "null if not provided or if it didn't change since the last heartbeat; the instance Id otherwise." }, { "name": "RackId", "type": "string", "versions": "0+", "nullableVersions": "0+", "default": "null", "about": "null if not provided or if it didn't change since the last heartbeat; the rack ID of consumer otherwise." }, { "name": "RebalanceTimeoutMs", "type": "int32", "versions": "0+", "default": -1, "about": "-1 if it didn't chance since the last heartbeat; the maximum time in milliseconds that the coordinator will wait on the member to revoke its partitions otherwise." }, { "name": "SubscribedTopicIds", "type": "[]uuid", "versions": "0+", "nullableVersions": "0+", "default": "null", "about": "null if it didn't change since the last heartbeat; the subscribed topic ids otherwise." }, { "name": "SubscribedTopicRegex", "type": "string", "versions": "0+", "nullableVersions": "0+", "default": "null", "about": "null if it didn't change since the last heartbeat; the subscribed topic regex otherwise" }, { "name": "ServerAssignor", "type": "string", "versions": "0+", "nullableVersions": "0+", "default": "null", "about": "null if not used or if it didn't change since the last heartbeat; the server side assignor to use otherwise." }, { "name": "ClientAssignors", "type": "[]Assignor", "versions": "0+", "nullableVersions": "0+", "default": "null", "about": "null if not used or if it didn't change since the last heartbeat; the list of client-side assignors otherwise.", "fields": [ { "name": "Name", "type": "string", "versions": "0+", "about": "The name of the assignor." }, { "name": "MinimumVersion", "type": "int16", "versions": "0+", "about": "The minimum supported version for the metadata." }, { "name": "MaximumVersion", "type": "int16", "versions": "0+", "about": "The maximum supported version for the metadata." }, { "name": "Reason", "type": "int8", "versions": "0+", "about": "The reason of the metadata update." }, { "name": "VersionMetadataVersion", "type": "int16", "versions": "0+", "about": "The version of the metadata." }, { "name": "MetadataMetadataBytes", "type": "bytes", "versions": "0+", "about": "The metadata." } ]}, { "name": "TopicPartitions", "type": "[]TopicPartition", "versions": "0+", "nullableVersions": "0+", "default": "null", "about": "null if it didn't change since the last heartbeat; the partitions owned by the member.", "fields": [ { "name": "TopicId", "type": "uuid", "versions": "0+", "about": "The topic ID." }, { "name": "Partitions", "type": "[]int32", "versions": "0+", "about": "The partitions." } ]} ] } |
Required ACL
- Read Group
Request Validation
...
Code Block | ||||
---|---|---|---|---|
| ||||
{ "apiKey": TBD, "type": "response", "name": "ConsumerGroupHeartbeatResponse", "validVersions": "0", "flexibleVersions": "0+", // Supported errors: // - GROUP_AUTHORIZATION_FAILED // - NOT_COORDINATOR // - COORDINATOR_NOT_AVAILABLE // - COORDINATOR_LOAD_IN_PROGRESS // - INVALID_REQUEST // - UNKNOWN_MEMBER_ID // - FENCED_MEMBER_EPOCH // - UNSUPPORTED_ASSIGNOR "fields": [ { "name": "ThrottleTimeMs", "type": "int32", "versions": "0+", "about": "The duration in milliseconds for which the request was throttled due to a quota violation, or zero if the request did not violate any quota." }, { "name": "ErrorCode", "type": "int16", "versions": "0+", "about": "The top-level error code, or 0 if there was no error" }, { "name": "ErrorMessage", "type": "string", "versions": "0+", "nullableVersions": "0+", "default": "null", "about": "The top-level error message, or null if there was no error." }, { "name": "MemberEpoch", "type": "int32", "versions": "0+", "about": "The member epoch." }, { "name": "ShouldComputeAssignment", "type": "bool", "versions": "0+", "about": "True if the member should compute the assignment for the group." }, { "name": "HeartbeatIntervalMs", "type": "int32", "versions": "0+", "about": "The heartbeat interval in milliseconds." }, { "name": "Assignment", "type": "Assignment", "versions": "0+", "nullableVersions": "0+", "default": "null", "about": "null if not provided; the assignment otherwise." , "fields": [ { "name": "Error", "type": "int8", "versions": "0+", "about": "The assigned error." }, { "name": "TopicPartitionsAssignedTopicPartitions", "type": "[]TopicPartition", "versions": "0+", "about": "The partitions assigned topic-partitions to the member that can be used immediately." }, { "name": "fieldsPendingTopicPartitions", "type": "[]TopicPartition", "versions": "0+", "about": "The partitions assigned to the member that cannot be used because they are not released by their former owners yet." }, { "name": "TopicIdMetadataVersion", "type": "uuidint16", "versions": "0+", "about": "The version topicof the IDmetadata." }, { "name": "PartitionsMetadataBytes", "type": "[]int32bytes", "versions": "0+", "about": "The assigned partitionsmetadata." } ]} ], "commonStructs": [ ]}, { "name": "TopicPartitions", "versions": "0+", "fields": [ { "name": "VersionTopicId", "type": "int16uuid", "versions": "0+", "about": "The version of the metadatatopic ID." }, { "name": "MetadataPartitions", "type": "bytes[]int32", "versions": "0+", "about": "The assigned metadatapartitions." } ]} ] } |
Response Handling
If the response contains no error, the member will reconcile its current assignment towards its new assignment. It does the following:
...