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{}
|
||
|
}
|
||
|
}
|