package picker

import "github.com/coreos/etcd/clientv3/balancer/picker"

Package picker defines/implements client balancer picker policy.

Index

Types

type Config

type Config struct {
	// Policy specifies etcd clientv3's built in balancer policy.
	Policy Policy

	// Logger defines picker logging object.
	Logger *zap.Logger

	// SubConnToResolverAddress maps each gRPC sub-connection to an address.
	// Basically, it is a list of addresses that the Picker can pick from.
	SubConnToResolverAddress map[balancer.SubConn]resolver.Address
}

Config defines picker configuration.

type Picker

type Picker interface {
	balancer.Picker
	String() string
}

Picker defines balancer Picker methods.

func New

func New(cfg Config) Picker

New creates a new Picker.

func NewErr

func NewErr(err error) Picker

NewErr returns a picker that always returns err on "Pick".

type Policy

type Policy uint8

Policy defines balancer picker policy.

const (
	// Error is error picker policy.
	Error Policy = iota

	// RoundrobinBalanced balances loads over multiple endpoints
	// and implements failover in roundrobin fashion.
	RoundrobinBalanced

	// Custom defines custom balancer picker.
	// TODO: custom picker is not supported yet.
	Custom
)

func (Policy) String

func (p Policy) String() string

Source Files

doc.go err.go picker.go roundrobin_balanced.go

Version
v3.3.27+incompatible
Published
Oct 15, 2021
Platform
linux/amd64
Imports
7 packages
Last checked
5 minutes ago

Tools for package owners.