Versions in this module Expand all Collapse all v0 v0.7.1 Aug 16, 2018 v0.5.1 May 31, 2018 Changes in this version + const OperatorEqual + const OperatorGreater + const OperatorPattern + const OperatorSmaller + const StrategyLatency + const StrategyRandom + const StrategyRoundRobin + const StrategySessionStickiness + const ZoneAware + var ErrNoneAvailableInstance = LBError + var Filters = make(map[string]Filter) + var LatencyMapRWMutex sync.RWMutex + var ProtocolStatsMap = make(map[string][]*ProtocolStats) + func BuildKey(microServiceName, version, app, protocol string) string + func CalculateAvgLatency() + func DeleteSuccessiveFailureCount(cookieValue string) + func Enable() error + func FilterAvailableZoneAffinity(old []*registry.MicroServiceInstance, c []*Criteria) []*registry.MicroServiceInstance + func FilterByMetadata(old []*registry.MicroServiceInstance, c []*Criteria) []*registry.MicroServiceInstance + func GetStrategyPlugin(name string) (func() Strategy, error) + func GetSuccessiveFailureCount(cookieValue string) int + func IncreaseSuccessiveFailureCount(cookieValue string) + func InstallFilter(name string, f Filter) + func InstallStrategy(name string, s func() Strategy) + func ResetSuccessiveFailureMap() + func SetLatency(latency time.Duration, addr, microServiceName, version, app, protocol string) + func SortLatency() + type ByDuration []*ProtocolStats + func (a ByDuration) Len() int + func (a ByDuration) Less(i, j int) bool + func (a ByDuration) Swap(i, j int) + type Criteria struct + Key string + Operator string + Value string + type Filter func(instances []*registry.MicroServiceInstance, criteria []*Criteria) []*registry.MicroServiceInstance + type LBError struct + Message string + func (e LBError) Error() string + type ProtocolStats struct + Addr string + AvgLatency time.Duration + Latency []time.Duration + func (ps *ProtocolStats) CalculateAverageLatency() + func (ps *ProtocolStats) SaveLatency(l time.Duration) + type RandomStrategy struct + func (r *RandomStrategy) Pick() (*registry.MicroServiceInstance, error) + func (r *RandomStrategy) ReceiveData(instances []*registry.MicroServiceInstance, ...) + type RoundRobinStrategy struct + func (r *RoundRobinStrategy) Pick() (*registry.MicroServiceInstance, error) + func (r *RoundRobinStrategy) ReceiveData(instances []*registry.MicroServiceInstance, ...) + type SessionStickinessStrategy struct + func (r *SessionStickinessStrategy) Pick() (*registry.MicroServiceInstance, error) + func (r *SessionStickinessStrategy) ReceiveData(instances []*registry.MicroServiceInstance, ...) + type Strategy interface + Pick func() (*registry.MicroServiceInstance, error) + ReceiveData func(instances []*registry.MicroServiceInstance, ...) + func BuildStrategy(consumerID, serviceName, app, version, protocol, sessionID string, fs []Filter, ...) (Strategy, error) + type WeightedResponseStrategy struct + func (r *WeightedResponseStrategy) Pick() (*registry.MicroServiceInstance, error) + func (r *WeightedResponseStrategy) ReceiveData(instances []*registry.MicroServiceInstance, ...)