Versions in this module Expand all Collapse all v0 v0.0.2 May 6, 2023 Changes in this version + const BoundedBalancer + const ConsistentHashBalancer + const IPHashBalancer + const LeastLoadBalancer + const P2CBalancer + const R2Balancer + const RandomBalancer + var AlgorithmNotSupportedError = errors.New("algorithm not supported") + var NoHostError = errors.New("no host") + type Balancer interface + Add func(string) + Balance func(string) (string, error) + Done func(string) + Inc func(string) + Remove func(string) + func Build(algorithm string, hosts []string) (Balancer, error) + func NewIPHash(hosts []string) Balancer + func NewLeastLoad(hosts []string) Balancer + func NewP2C(hosts []string) Balancer + func NewRandom(hosts []string) Balancer + func NewRoundRobin(hosts []string) Balancer + type BaseBalancer struct + func (b *BaseBalancer) Add(host string) + func (b *BaseBalancer) Balance(key string) (string, error) + func (b *BaseBalancer) Done(_ string) + func (b *BaseBalancer) Inc(_ string) + func (b *BaseBalancer) Remove(host string) + type Factory func([]string) Balancer + type IPHash struct + func (r *IPHash) Balance(key string) (string, error) + type LeastLoad struct + func (l *LeastLoad) Add(hostName string) + func (l *LeastLoad) Balance(_ string) (string, error) + func (l *LeastLoad) Done(hostName string) + func (l *LeastLoad) Inc(hostName string) + func (l *LeastLoad) Remove(hostName string) + type P2C struct + func (p *P2C) Add(hostName string) + func (p *P2C) Balance(key string) (string, error) + func (p *P2C) Done(key string) + func (p *P2C) Inc(key string) + func (p *P2C) Remove(hostName string) + type Random struct + func (r *Random) Balance(_ string) (string, error) + type RoundRobin struct + func (r *RoundRobin) Balance(_ string) (string, error)