balancer

package
v3.2.6 Latest Latest
Warning

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

Go to latest
Published: Nov 1, 2021 License: Apache-2.0 Imports: 12 Imported by: 0

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

func WithBalancer

func WithBalancer(b Balancer, filter func(conn.Conn, info.Info) bool) balancerOption

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 Single

func Single() Balancer

type Element

type Element interface {
}

Element is an empty interface that holds some Balancer specific data.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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