selector

package
v1.1.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 7, 2022 License: Apache-2.0 Imports: 6 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrNotFound      = errors.New("not found")
	ErrNoneAvailable = errors.New("none available")
)

Functions

This section is empty.

Types

type Filter

type Filter func([]*registry.Service) []*registry.Service

Filter 过滤节点

type Next

type Next func() (*registry.Node, error)

Next 获取可用的节点

func Random

func Random(services []*registry.Service) Next

Random 随机选择节点

type Option

type Option func(*Options)

Option 根据配置选项初始化 selector

func Registry

func Registry(r registry.Registry) Option

Registry 设置selector的注册表对象

func SetStrategy

func SetStrategy(fn Strategy) Option

SetStrategy 设置节点策略引擎

type Options

type Options struct {
	// 服务注册表
	Registry registry.Registry
	// 节点选择策略引擎
	Strategy Strategy
	// 扩展配置,可以添加自定义选项
	Context context.Context
}

Options selector的配置参数

type SelectOption

type SelectOption func(*SelectOptions)

SelectOption 调用select 方法的时候传入的配置

func WithFilter

func WithFilter(fn ...Filter) SelectOption

WithFilter 添加节点过滤规则

func WithStrategy

func WithStrategy(fn Strategy) SelectOption

WithStrategy 在调用select方法时候传入节点策略引擎

type SelectOptions

type SelectOptions struct {
	// 节点过滤器列表
	Filters []Filter
	// 节点选择策略引擎
	Strategy Strategy
	// 扩展配置,可以添加自定义选项
	Context context.Context
}

SelectOptions 节点选择器参数

type Selector

type Selector interface {
	Init(opts ...Option) error
	Options() Options
	Select(service string, opts ...SelectOption) (Next, error)
	Mark(service string, node *registry.Node, err error)
	Reset(service string)
	Close() error
	String() string
}

Selector 服务选择器接口

func NewSelector

func NewSelector(opts ...Option) Selector

NewSelector 创建选择器

type Strategy

type Strategy func([]*registry.Service) Next

Strategy 根据策略选择节点

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL