load_balance

package
v1.0.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 29, 2021 License: Apache-2.0 Imports: 14 Imported by: 0

Documentation

Index

Constants

View Source
const (
	DefaultCheckTimeout   = 5
	DefaultCheckMaxErrNum = 2
	DefaultCheckInterval  = 5
)

Variables

View Source
var CheckConfigHandlerMap map[string]CheckConfigHandler
View Source
var LoadBalanceStrategyHandlerMap map[string]LoadBalanceStrategyHandler

Functions

func RegisterCheckConfigHandler

func RegisterCheckConfigHandler(lbtype string, conf CheckConfigHandler)

func RegisterLoadBalanceStrategyHandler

func RegisterLoadBalanceStrategyHandler(name string, handler LoadBalanceStrategyHandler)

Types

type CheckConfigHandler

type CheckConfigHandler func(service *model.ServiceDetail) (LoadBalanceConf, error)

func GetCheckConfigHandler

func GetCheckConfigHandler(lbtype string) CheckConfigHandler

type ConsistentHashStrategy

type ConsistentHashStrategy struct {
	// contains filtered or unexported fields
}

func NewConsistentHashStrategy

func NewConsistentHashStrategy(replicas int, fn Hash) *ConsistentHashStrategy

func (*ConsistentHashStrategy) Add

func (c *ConsistentHashStrategy) Add(params ...string) error

func (*ConsistentHashStrategy) Get

func (c *ConsistentHashStrategy) Get(key string) (string, error)

func (*ConsistentHashStrategy) GetAll

func (r *ConsistentHashStrategy) GetAll() ([]string, error)

func (*ConsistentHashStrategy) IsEmpty

func (c *ConsistentHashStrategy) IsEmpty() bool

func (*ConsistentHashStrategy) RemoveAll

func (c *ConsistentHashStrategy) RemoveAll() error

type Hash

type Hash func(data []byte) uint32

type LoadBalance

type LoadBalance struct {
	// contains filtered or unexported fields
}

func LoadBanlanceFactorWithStrategy

func LoadBanlanceFactorWithStrategy(strategy LoadBalanceStrategy, conf LoadBalanceConf) *LoadBalance

func NewLoadBalance

func NewLoadBalance(strategy LoadBalanceStrategy, conf LoadBalanceConf) *LoadBalance

func (*LoadBalance) Add

func (r *LoadBalance) Add(params ...string) error

func (*LoadBalance) Close

func (r *LoadBalance) Close()

func (*LoadBalance) Get

func (r *LoadBalance) Get(params string) (string, error)

func (*LoadBalance) GetAll

func (r *LoadBalance) GetAll() ([]string, error)

func (*LoadBalance) Update

func (r *LoadBalance) Update()

type LoadBalanceCheckConf

type LoadBalanceCheckConf struct {
	// contains filtered or unexported fields
}

func (*LoadBalanceCheckConf) Attach

func (s *LoadBalanceCheckConf) Attach(o Observer)

func (*LoadBalanceCheckConf) CloseWatch

func (s *LoadBalanceCheckConf) CloseWatch()

func (*LoadBalanceCheckConf) GetConf

func (s *LoadBalanceCheckConf) GetConf() []string

func (*LoadBalanceCheckConf) NotifyAllObservers

func (s *LoadBalanceCheckConf) NotifyAllObservers()

func (*LoadBalanceCheckConf) UpdateConf

func (s *LoadBalanceCheckConf) UpdateConf(conf []string)

func (*LoadBalanceCheckConf) WatchConf

func (s *LoadBalanceCheckConf) WatchConf()

type LoadBalanceConf

type LoadBalanceConf interface {
	Attach(o Observer)
	GetConf() []string
	WatchConf()
	UpdateConf(conf []string)
	CloseWatch()
}

func NewLoadBalanceCheckConf

func NewLoadBalanceCheckConf(service *model.ServiceDetail) (LoadBalanceConf, error)

type LoadBalanceStrategy

type LoadBalanceStrategy interface {
	Add(...string) error
	RemoveAll() error
	GetAll() ([]string, error)
	Get(string) (string, error)
}

func GetLoadBalanceStrategy

func GetLoadBalanceStrategy(name string) LoadBalanceStrategy

type LoadBalanceStrategyHandler

type LoadBalanceStrategyHandler func() LoadBalanceStrategy

type Observer

type Observer interface {
	Update()
}

type RandomStrategy

type RandomStrategy struct {
	// contains filtered or unexported fields
}

func (*RandomStrategy) Add

func (r *RandomStrategy) Add(params ...string) error

func (*RandomStrategy) Get

func (r *RandomStrategy) Get(key string) (string, error)

func (*RandomStrategy) GetAll

func (r *RandomStrategy) GetAll() ([]string, error)

func (*RandomStrategy) Next

func (r *RandomStrategy) Next() string

func (*RandomStrategy) RemoveAll

func (r *RandomStrategy) RemoveAll() error

type RoundRobinStrategy

type RoundRobinStrategy struct {
	// contains filtered or unexported fields
}

func (*RoundRobinStrategy) Add

func (r *RoundRobinStrategy) Add(params ...string) error

func (*RoundRobinStrategy) Get

func (r *RoundRobinStrategy) Get(key string) (string, error)

func (*RoundRobinStrategy) GetAll

func (r *RoundRobinStrategy) GetAll() ([]string, error)

func (*RoundRobinStrategy) Next

func (r *RoundRobinStrategy) Next() string

func (*RoundRobinStrategy) RemoveAll

func (r *RoundRobinStrategy) RemoveAll() error

type UInt32Slice

type UInt32Slice []uint32

func (UInt32Slice) Len

func (s UInt32Slice) Len() int

func (UInt32Slice) Less

func (s UInt32Slice) Less(i, j int) bool

func (UInt32Slice) Swap

func (s UInt32Slice) Swap(i, j int)

type WeightNode

type WeightNode struct {
	// contains filtered or unexported fields
}

type WeightRoundRobinStrategy

type WeightRoundRobinStrategy struct {
	// contains filtered or unexported fields
}

func (*WeightRoundRobinStrategy) Add

func (r *WeightRoundRobinStrategy) Add(params ...string) error

func (*WeightRoundRobinStrategy) Get

func (*WeightRoundRobinStrategy) GetAll

func (r *WeightRoundRobinStrategy) GetAll() ([]string, error)

func (*WeightRoundRobinStrategy) Next

func (r *WeightRoundRobinStrategy) Next() string

func (*WeightRoundRobinStrategy) RemoveAll

func (r *WeightRoundRobinStrategy) RemoveAll() error

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL