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.