package balancer

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

Package balancer implements client balancer.

Index

Functions

func RegisterBuilder

func RegisterBuilder(cfg Config)

RegisterBuilder creates and registers a builder. Since this function calls balancer.Register, it must be invoked at initialization time.

Types

type Balancer

type Balancer interface {
	// Balancer is called on specified client connection. Client initiates gRPC
	// connection with "grpc.Dial(addr, grpc.WithBalancerName)", and then those resolved
	// addresses are passed to "grpc/balancer.Balancer.HandleResolvedAddrs".
	// For each resolved address, balancer calls "balancer.ClientConn.NewSubConn".
	// "grpc/balancer.Balancer.HandleSubConnStateChange" is called when connectivity state
	// changes, thus requires failover logic in this method.
	balancer.Balancer

	// Picker calls "Pick" for every client request.
	picker.Picker
}

Balancer defines client balancer interface.

type Config

type Config struct {
	// Policy configures balancer policy.
	Policy picker.Policy

	// Name defines an additional name for balancer.
	// Useful for balancer testing to avoid register conflicts.
	// If empty, defaults to policy name.
	Name string

	// Logger configures balancer logging.
	// If nil, logs are discarded.
	Logger *zap.Logger
}

Config defines balancer configurations.

Source Files

balancer.go utils.go

Directories

PathSynopsis
clientv3/balancer/connectivityPackage connectivity implements client connectivity operations.
clientv3/balancer/pickerPackage picker defines/implements client balancer picker policy.
clientv3/balancer/resolver
clientv3/balancer/resolver/endpointPackage endpoint resolves etcd entpoints using grpc targets of the form 'endpoint://<id>/<endpoint>'.
Version
v3.3.27+incompatible
Published
Oct 15, 2021
Platform
linux/amd64
Imports
15 packages
Last checked
7 minutes ago

Tools for package owners.