Apply FallbackTag to leastping and roundrobin

This commit is contained in:
yuhan6665 2024-03-15 14:49:11 -04:00
parent 5c41292836
commit 69e1734e3a
1 changed files with 16 additions and 12 deletions

View File

@ -126,15 +126,17 @@ func (br *BalancingRule) Build(ohm outbound.Manager, dispatcher routing.Dispatch
switch strings.ToLower(br.Strategy) { switch strings.ToLower(br.Strategy) {
case "leastping": case "leastping":
return &Balancer{ return &Balancer{
selectors: br.OutboundSelector, selectors: br.OutboundSelector,
strategy: &LeastPingStrategy{}, strategy: &LeastPingStrategy{},
ohm: ohm, fallbackTag: br.FallbackTag,
ohm: ohm,
}, nil }, nil
case "roundrobin": case "roundrobin":
return &Balancer{ return &Balancer{
selectors: br.OutboundSelector, selectors: br.OutboundSelector,
strategy: &RoundRobinStrategy{}, strategy: &RoundRobinStrategy{},
ohm: ohm, fallbackTag: br.FallbackTag,
ohm: ohm,
}, nil }, nil
case "leastload": case "leastload":
i, err := br.StrategySettings.GetInstance() i, err := br.StrategySettings.GetInstance()
@ -147,17 +149,19 @@ func (br *BalancingRule) Build(ohm outbound.Manager, dispatcher routing.Dispatch
} }
leastLoadStrategy := NewLeastLoadStrategy(s) leastLoadStrategy := NewLeastLoadStrategy(s)
return &Balancer{ return &Balancer{
selectors: br.OutboundSelector, selectors: br.OutboundSelector,
ohm: ohm, fallbackTag: br.FallbackTag, ohm: ohm,
strategy: leastLoadStrategy, fallbackTag: br.FallbackTag,
strategy: leastLoadStrategy,
}, nil }, nil
case "random": case "random":
fallthrough fallthrough
case "": case "":
return &Balancer{ return &Balancer{
selectors: br.OutboundSelector, selectors: br.OutboundSelector,
ohm: ohm, fallbackTag: br.FallbackTag, ohm: ohm,
strategy: &RandomStrategy{}, fallbackTag: br.FallbackTag,
strategy: &RandomStrategy{},
}, nil }, nil
default: default:
return nil, newError("unrecognized balancer type") return nil, newError("unrecognized balancer type")