Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var ( // ErrNilBalancerElement returned when requested on a nil Balancer element. ErrNilBalancerElement = errors.New("nil balancer element") // ErrUnknownBalancerElement returned when requested on a unknown Balancer element. ErrUnknownBalancerElement = errors.New("unknown balancer element") // ErrUnknownTypeOfBalancerElement returned when requested on a unknown types of Balancer element. ErrUnknownTypeOfBalancerElement = errors.New("unknown types of balancer element") )
Functions ¶
func NewMultiBalancer ¶
func NewMultiBalancer(opts ...balancerOption) *multiBalancer
Types ¶
type Balancer ¶
type Balancer interface {
// Next returns next connection for request.
// Next MUST not return nil if it has at least one connection.
Next() conn.Conn
// Insert inserts new connection.
Insert(conn.Conn, info.Info) Element
// Update updates previously inserted connection.
Update(Element, info.Info)
// Remove removes previously inserted connection.
Remove(Element)
// Contains returns true if Balancer contains requested element.
Contains(Element) bool
}
Balancer is an interface that implements particular load-balancing algorithm.
Balancer methods called synchronized. That is, implementations must not provide additional goroutine safety.
func New ¶
func New(cfg config.BalancerConfig) Balancer
Click to show internal directories.
Click to hide internal directories.