26 lines
453 B
Go
26 lines
453 B
Go
package balance
|
|
|
|
type LbType int
|
|
|
|
const (
|
|
LbRandom LbType = iota
|
|
LbRoundRobin
|
|
LbWeightRoundRobin
|
|
LbConsistentHash
|
|
)
|
|
|
|
func LoadBalanceFactory(lbType LbType) LoadBalance {
|
|
switch lbType {
|
|
case LbRandom:
|
|
return &RandomBalance{}
|
|
case LbConsistentHash:
|
|
return NewConsistentHashBalance(10, nil)
|
|
case LbRoundRobin:
|
|
return &RoundRobinBalance{}
|
|
case LbWeightRoundRobin:
|
|
return &WeightRoundRobinBalance{}
|
|
default:
|
|
return &RandomBalance{}
|
|
}
|
|
}
|