dongnuo123 commented on code in PR #15954:
URL: https://github.com/apache/kafka/pull/15954#discussion_r1603521402
##########
group-coordinator/src/main/java/org/apache/kafka/coordinator/group/GroupMetadataManager.java:
##########
@@ -1197,6 +1199,82 @@ private void throwIfClassicProtocolIsNotSupported(
}
}
+ /**
+ * Validates if the consumer group member uses the classic protocol.
+ *
+ * @param member The ConsumerGroupMember.
+ */
+ private void throwIfMemberDoesNotUseClassicProtocol(ConsumerGroupMember
member) {
+ if (!member.useClassicProtocol()) {
+ throw new UnknownMemberIdException(
+ String.format("Member %s does not use the classic protocol.",
member.memberId())
+ );
+ }
+ }
+
+ /**
+ * Validates if the generation id from the request matches the member
epoch.
+ *
+ * @param groupId The ConsumerGroup id.
+ * @param memberEpoch The member epoch.
+ * @param requestGenerationId The generation id from the request.
+ */
+ private void throwIfGenerationIdUnmatched(
+ String groupId,
+ int memberEpoch,
+ int requestGenerationId
+ ) {
+ if (memberEpoch != requestGenerationId) {
+ throw Errors.ILLEGAL_GENERATION.exception(
+ String.format("The request generation id %s is not equal to
the member epoch %d from the consumer group %s.",
+ requestGenerationId, memberEpoch, groupId)
+ );
+ }
+ }
+
+ /**
+ * Validates if the protocol type and the protocol name from the request
matches those of the consumer group.
+ *
+ * @param member The ConsumerGroupMember.
+ * @param requestProtocolType The protocol type from the request.
+ * @param requestProtocolName The protocol name from the request.
+ */
+ private void throwIfClassicProtocolUnmatched(
+ ConsumerGroupMember member,
+ String requestProtocolType,
+ String requestProtocolName
+ ) {
+ if (!ConsumerProtocol.PROTOCOL_TYPE.equals(requestProtocolType)) {
+ throw Errors.INCONSISTENT_GROUP_PROTOCOL.exception(
+ String.format("The protocol type %s from member %s request is
not equal to the group protocol type %s.",
+ requestProtocolType, member.memberId(),
ConsumerProtocol.PROTOCOL_TYPE)
+ );
+ } else if
(!member.supportedClassicProtocols().get().iterator().next().name().equals(requestProtocolName))
{
Review Comment:
Yes it's always set here
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]