Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var ErrNoAvailable = errors.ServiceUnavailable("no_available_node", "")
Functions ¶
func SetGlobalSelector ¶
func SetGlobalSelector(builder Builder)
Types ¶
type Builder ¶
type Builder interface {
Build() Selector
}
func GlobalSelector ¶
func GlobalSelector() Builder
type DefaultNode ¶
type DefaultNode struct {
// contains filtered or unexported fields
}
func (*DefaultNode) Address ¶
func (n *DefaultNode) Address() string
func (*DefaultNode) InitialWeight ¶
func (n *DefaultNode) InitialWeight() *int64
func (*DefaultNode) Metadata ¶
func (n *DefaultNode) Metadata() map[string]string
func (*DefaultNode) Scheme ¶
func (n *DefaultNode) Scheme() string
func (*DefaultNode) ServiceName ¶
func (n *DefaultNode) ServiceName() string
func (*DefaultNode) Version ¶
func (n *DefaultNode) Version() string
type Node ¶
type Rebalancer ¶
type Rebalancer interface {
Apply(nodes []Node)
}
type SelectOption ¶
type SelectOption func(options *SelectOptions)
func WithNodeFilter ¶
func WithNodeFilter(fn ...NodeFilter) SelectOption
type SelectOptions ¶
type SelectOptions struct {
NodeFilters []NodeFilter
}
type Selector ¶
type Selector interface { Rebalancer Select(ctx context.Context, opts ...SelectOption) (selected Node, done DoneFunc, err error) }
Click to show internal directories.
Click to hide internal directories.