|
@@ -47,6 +47,10 @@ type BalanceStrategy interface {
|
|
|
|
|
|
|
|
|
Plan(members map[string]ConsumerGroupMemberMetadata, topics map[string][]int32) (BalanceStrategyPlan, error)
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ AssignmentData(plan BalanceStrategyPlan, memberID string, generationID int32) ([]byte, error)
|
|
|
}
|
|
|
|
|
|
|
|
@@ -132,6 +136,11 @@ func (s *balanceStrategy) Plan(members map[string]ConsumerGroupMemberMetadata, t
|
|
|
return plan, nil
|
|
|
}
|
|
|
|
|
|
+
|
|
|
+func (s *balanceStrategy) AssignmentData(plan BalanceStrategyPlan, memberID string, generationID int32) ([]byte, error) {
|
|
|
+ return nil, nil
|
|
|
+}
|
|
|
+
|
|
|
type balanceStrategySortable struct {
|
|
|
topic string
|
|
|
memberIDs []string
|
|
@@ -268,6 +277,19 @@ func (s *stickyBalanceStrategy) Plan(members map[string]ConsumerGroupMemberMetad
|
|
|
return plan, nil
|
|
|
}
|
|
|
|
|
|
+
|
|
|
+
|
|
|
+func (s *stickyBalanceStrategy) AssignmentData(plan BalanceStrategyPlan, memberID string, generationID int32) ([]byte, error) {
|
|
|
+ topics, ok := plan[memberID]
|
|
|
+ if !ok {
|
|
|
+ return nil, nil
|
|
|
+ }
|
|
|
+ return encode(&StickyAssignorUserDataV1{
|
|
|
+ Topics: topics,
|
|
|
+ Generation: generationID,
|
|
|
+ }, nil)
|
|
|
+}
|
|
|
+
|
|
|
func strsContains(s []string, value string) bool {
|
|
|
for _, entry := range s {
|
|
|
if entry == value {
|