Documentation ¶
Overview ¶
@Time : 2019/6/19 14:17 @Author : kenny zhu @File : default @Software: GoLand @Others:
@Time : 2019/6/19 14:22 @Author : kenny zhu @File : filter @Software: GoLand @Others:
@Time : 2019/6/19 14:13 @Author : kenny zhu @File : options @Software: GoLand @Others:
@Time : 2019/6/19 14:12 @Author : kenny zhu @File : selector @Software: GoLand @Others:
@Time : 2019/6/19 14:15 @Author : kenny zhu @File : strategy @Software: GoLand @Others:
Index ¶
Constants ¶
This section is empty.
Variables ¶
var ( DefaultSelector = NewSelector() ErrNotFound = errors.New("not found") ErrNoneAvailable = errors.New("none available") )
Functions ¶
This section is empty.
Types ¶
type Filter ¶
Filter is used to filter a service during the selection process
func FilterEndpoint ¶
FilterEndpoint is an endpoint based Select Filter which will only return services with the endpoint specified.
func FilterLabel ¶
FilterLabel is a label based Select Filter which will only return services with the label specified.
func FilterVersion ¶
FilterVersion is a version based Select Filter which will only return services with the version specified.
type Next ¶
Next is a function that returns the next node based on the selector's strategy
func RoundRobin ¶
RoundRobin is a round robin strategy algorithm for node selection, WARN : Here not supports go-routines.
type Option ¶
type Option func(*Options)
Option used to initialise the selector
func SetStrategy ¶
SetStrategy sets the default strategy for the selector
type SelectOption ¶
type SelectOption func(*SelectOptions)
SelectOption used when making a select call
func WithFilter ¶
func WithFilter(fn ...Filter) SelectOption
WithFilter adds a filter function to the list of filters used during the Select call.
type SelectOptions ¶
type Selector ¶
type Selector interface { Init(opts ...Option) error Options() Options // Select returns a function which should return the next node Select(service string, opts ...SelectOption) (Next, error) // Mark sets the success/error against a node Mark(service string, node *registry.Node, err error) // Reset returns state back to zero for a service Reset(service string) // Close renders the selector unusable Close() error // Name of the selector String() string }
Selector builds on the registry as a mechanism to pick nodes and mark their status. This allows host pools and other things to be built using various algorithms.