Skip to content

Commit 52863f0

Browse files
committed
pass through protocol name for sync group
1 parent 45cbf89 commit 52863f0

File tree

1 file changed

+13
-11
lines changed

1 file changed

+13
-11
lines changed

consumergroup.go

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -812,11 +812,12 @@ func (cg *ConsumerGroup) nextGeneration(memberID string) (string, error) {
812812
var generationID int
813813
var groupAssignments GroupMemberAssignments
814814
var assignments map[string][]int
815+
var protocolName string
815816
var err error
816817

817818
// join group. this will join the group and prepare assignments if our
818819
// consumer is elected leader. it may also change or assign the member ID.
819-
memberID, generationID, groupAssignments, err = cg.joinGroup(memberID)
820+
memberID, generationID, protocolName, groupAssignments, err = cg.joinGroup(memberID)
820821
if err != nil {
821822
cg.withErrorLogger(func(log Logger) {
822823
log.Printf("Failed to join group %s: %v", cg.config.ID, err)
@@ -828,7 +829,7 @@ func (cg *ConsumerGroup) nextGeneration(memberID string) (string, error) {
828829
})
829830

830831
// sync group
831-
assignments, err = cg.syncGroup(memberID, generationID, groupAssignments)
832+
assignments, err = cg.syncGroup(memberID, generationID, protocolName, groupAssignments)
832833
if err != nil {
833834
cg.withErrorLogger(func(log Logger) {
834835
log.Printf("Failed to sync group %s: %v", cg.config.ID, err)
@@ -905,10 +906,10 @@ func (cg *ConsumerGroup) nextGeneration(memberID string) (string, error) {
905906
// * InconsistentGroupProtocol:
906907
// * InvalidSessionTimeout:
907908
// * GroupAuthorizationFailed:
908-
func (cg *ConsumerGroup) joinGroup(memberID string) (string, int, GroupMemberAssignments, error) {
909+
func (cg *ConsumerGroup) joinGroup(memberID string) (string, int, string, GroupMemberAssignments, error) {
909910
request, err := cg.makeJoinGroupRequest(memberID)
910911
if err != nil {
911-
return "", 0, nil, err
912+
return "", 0, "", nil, err
912913
}
913914

914915
response, err := cg.coord.joinGroup(request)
@@ -919,20 +920,19 @@ func (cg *ConsumerGroup) joinGroup(memberID string) (string, int, GroupMemberAss
919920
memberID = response.MemberID
920921
}
921922
if err != nil {
922-
return memberID, 0, nil, err
923+
return memberID, 0, "", nil, err
923924
}
924925

925926
generationID := response.GenerationID
926927

927928
cg.withLogger(func(l Logger) {
928929
l.Printf("joined group %s as member %s in generation %d", cg.config.ID, memberID, generationID)
929930
})
930-
931931
var assignments GroupMemberAssignments
932932
if iAmLeader := response.MemberID == response.LeaderID; iAmLeader {
933933
v, err := cg.assignTopicPartitions(response)
934934
if err != nil {
935-
return memberID, 0, nil, err
935+
return memberID, 0, "", nil, err
936936
}
937937
assignments = v
938938

@@ -949,7 +949,7 @@ func (cg *ConsumerGroup) joinGroup(memberID string) (string, int, GroupMemberAss
949949
l.Printf("joinGroup succeeded for response, %v. generationID=%v, memberID=%v", cg.config.ID, response.GenerationID, response.MemberID)
950950
})
951951

952-
return memberID, generationID, assignments, nil
952+
return memberID, generationID, response.ProtocolName, assignments, nil
953953
}
954954

955955
// makeJoinGroupRequest handles the logic of constructing a joinGroup
@@ -1044,8 +1044,8 @@ func (cg *ConsumerGroup) assignTopicPartitions(group *JoinGroupResponse) (GroupM
10441044
// * IllegalGeneration:
10451045
// * RebalanceInProgress:
10461046
// * GroupAuthorizationFailed:
1047-
func (cg *ConsumerGroup) syncGroup(memberID string, generationID int, memberAssignments GroupMemberAssignments) (map[string][]int, error) {
1048-
request := cg.makeSyncGroupRequest(memberID, generationID, memberAssignments)
1047+
func (cg *ConsumerGroup) syncGroup(memberID string, generationID int, protocolName string, memberAssignments GroupMemberAssignments) (map[string][]int, error) {
1048+
request := cg.makeSyncGroupRequest(memberID, generationID, protocolName, memberAssignments)
10491049
response, err := cg.coord.syncGroup(request)
10501050
if err == nil && response.Error != nil {
10511051
err = response.Error
@@ -1066,11 +1066,13 @@ func (cg *ConsumerGroup) syncGroup(memberID string, generationID int, memberAssi
10661066
return response.Assignment.AssignedPartitions, nil
10671067
}
10681068

1069-
func (cg *ConsumerGroup) makeSyncGroupRequest(memberID string, generationID int, memberAssignments GroupMemberAssignments) *SyncGroupRequest {
1069+
func (cg *ConsumerGroup) makeSyncGroupRequest(memberID string, generationID int, protocolName string, memberAssignments GroupMemberAssignments) *SyncGroupRequest {
10701070
request := &SyncGroupRequest{
10711071
GroupID: cg.config.ID,
10721072
GenerationID: generationID,
10731073
MemberID: memberID,
1074+
ProtocolType: defaultProtocolType,
1075+
ProtocolName: protocolName,
10741076
}
10751077

10761078
if memberAssignments != nil {

0 commit comments

Comments
 (0)