Versions in this module Expand all Collapse all v0 v0.0.1 Feb 17, 2020 Changes in this version + const LBRandom + const LBRandomWeight + const LBRoundRobbin + const LBRoundRobbinWeight + const LBUnknown + func DefaultCompare(a, b interface{}) int + type BaseLoadBalance struct + Compare Compare + func (lb *BaseLoadBalance) Add(factor interface{}, invoker interface{}) + func (lb *BaseLoadBalance) AddInvokers(invokers ...interface{}) + func (lb *BaseLoadBalance) Remove(invoker interface{}) + type Compare func(a, b interface{}) int + type DummyLocker struct + func (l *DummyLocker) Lock() + func (l *DummyLocker) RLock() + func (l *DummyLocker) RUnlock() + func (l *DummyLocker) Unlock() + type LoadBalance interface + Add func(factor interface{}, invoker interface{}) + Remove func(invoker interface{}) + Select func(ctx context.Context) interface{} + WithLocker func(RWLocker) + func Create(t int) LoadBalance + type LockLoadBalance struct + func (lb *LockLoadBalance) WithLocker(locker RWLocker) + type RWLocker interface + Lock func() + RLock func() + RUnlock func() + Unlock func() + type RandomLoadBalance struct + func NewRandomLoadBalance() *RandomLoadBalance + func (lb *RandomLoadBalance) Select(ctx context.Context) interface{} + type RandomWeightLoadBalance struct + func NewRandomWeightLoadBalance() *RandomWeightLoadBalance + func (lb *RandomWeightLoadBalance) Add(weight interface{}, invoker interface{}) + func (lb *RandomWeightLoadBalance) Remove(invoker interface{}) + func (lb *RandomWeightLoadBalance) Select(ctx context.Context) interface{} + type RoundRobbinLoadBalance struct + func NewRoundRobbinLoadBalance() *RoundRobbinLoadBalance + func (lb *RoundRobbinLoadBalance) Select(ctx context.Context) interface{} + type RoundRobbinWeightLoadBalance struct + Compare Compare + func NewRoundRobbinWeightLoadBalance() *RoundRobbinWeightLoadBalance + func (lb *RoundRobbinWeightLoadBalance) Add(weight interface{}, invoker interface{}) + func (lb *RoundRobbinWeightLoadBalance) Remove(invoker interface{}) + func (lb *RoundRobbinWeightLoadBalance) Select(ctx context.Context) interface{} + type RwLocker sync.RWMutex + func (l *RwLocker) Lock() + func (l *RwLocker) RLock() + func (l *RwLocker) RUnlock() + func (l *RwLocker) Unlock()