ff3610850e
The router.Manager is already rebalancing servers for other connection pools, so it can call into our resolver to do the same. This change allows us to remove the serf dependency from resolverBuilder, and remove Datacenter from the config. Also revert the change to refreshServerRebalanceTimer
31 lines
827 B
Go
31 lines
827 B
Go
package router
|
|
|
|
import "github.com/hashicorp/consul/agent/metadata"
|
|
|
|
// ServerTracker is called when Router is notified of a server being added or
|
|
// removed.
|
|
type ServerTracker interface {
|
|
NewRebalancer(dc string) func()
|
|
AddServer(*metadata.Server)
|
|
RemoveServer(*metadata.Server)
|
|
}
|
|
|
|
// Rebalancer is called periodically to re-order the servers so that the load on the
|
|
// servers is evenly balanced.
|
|
type Rebalancer func()
|
|
|
|
// NoOpServerTracker is a ServerTracker that does nothing. Used when gRPC is not
|
|
// enabled.
|
|
type NoOpServerTracker struct{}
|
|
|
|
// Rebalance does nothing
|
|
func (NoOpServerTracker) NewRebalancer(string) func() {
|
|
return func() {}
|
|
}
|
|
|
|
// AddServer does nothing
|
|
func (NoOpServerTracker) AddServer(*metadata.Server) {}
|
|
|
|
// RemoveServer does nothing
|
|
func (NoOpServerTracker) RemoveServer(*metadata.Server) {}
|