|
@@ -6,6 +6,15 @@ import (
|
|
|
)
|
|
|
|
|
|
const (
|
|
|
+
|
|
|
+ RangeBalanceStrategyName = "range"
|
|
|
+
|
|
|
+
|
|
|
+ RoundRobinBalanceStrategyName = "roundrobin"
|
|
|
+
|
|
|
+
|
|
|
+ StickyBalanceStrategyName = "sticky"
|
|
|
+
|
|
|
defaultGeneration = -1
|
|
|
)
|
|
|
|
|
@@ -45,7 +54,7 @@ type BalanceStrategy interface {
|
|
|
|
|
|
|
|
|
var BalanceStrategyRange = &balanceStrategy{
|
|
|
- name: "range",
|
|
|
+ name: RangeBalanceStrategyName,
|
|
|
coreFn: func(plan BalanceStrategyPlan, memberIDs []string, topic string, partitions []int32) {
|
|
|
step := float64(len(partitions)) / float64(len(memberIDs))
|
|
|
|
|
@@ -63,7 +72,7 @@ var BalanceStrategyRange = &balanceStrategy{
|
|
|
|
|
|
|
|
|
var BalanceStrategyRoundRobin = &balanceStrategy{
|
|
|
- name: "roundrobin",
|
|
|
+ name: RoundRobinBalanceStrategyName,
|
|
|
coreFn: func(plan BalanceStrategyPlan, memberIDs []string, topic string, partitions []int32) {
|
|
|
for i, part := range partitions {
|
|
|
memberID := memberIDs[i%len(memberIDs)]
|
|
@@ -150,7 +159,7 @@ type stickyBalanceStrategy struct {
|
|
|
}
|
|
|
|
|
|
|
|
|
-func (s *stickyBalanceStrategy) Name() string { return "sticky" }
|
|
|
+func (s *stickyBalanceStrategy) Name() string { return StickyBalanceStrategyName }
|
|
|
|
|
|
|
|
|
func (s *stickyBalanceStrategy) Plan(members map[string]ConsumerGroupMemberMetadata, topics map[string][]int32) (BalanceStrategyPlan, error) {
|