Version: v1.58.2 Latest Latest

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

Go to latest
Published: Sep 21, 2023 License: Apache-2.0 Imports: 6 Imported by: 325



Package base defines a balancer base that can be used to build balancers with different picking algorithms.

The base balancer creates a new SubConn for each resolved address. The provided picker will only be notified about READY SubConns.

This package is the base of round_robin balancer, its purpose is to be used to build round_robin like balancers with complex picking algorithms. Balancers with more complicated logic should try to implement a balancer builder from scratch.

All APIs in this package are experimental.



This section is empty.


View Source
var NewErrPickerV2 = NewErrPicker

NewErrPickerV2 is temporarily defined for backward compatibility reasons.

Deprecated: use NewErrPicker instead.


func NewBalancerBuilder

func NewBalancerBuilder(name string, pb PickerBuilder, config Config) balancer.Builder

NewBalancerBuilder returns a base balancer builder configured by the provided config.

func NewErrPicker

func NewErrPicker(err error) balancer.Picker

NewErrPicker returns a Picker that always returns err on Pick().


type Config added in v1.17.0

type Config struct {
	// HealthCheck indicates whether health checking should be enabled for this specific balancer.
	HealthCheck bool

Config contains the config info about the base balancer builder.

type PickerBuildInfo added in v1.26.0

type PickerBuildInfo struct {
	// ReadySCs is a map from all ready SubConns to the Addresses used to
	// create them.
	ReadySCs map[balancer.SubConn]SubConnInfo

PickerBuildInfo contains information needed by the picker builder to construct a picker.

type PickerBuilder

type PickerBuilder interface {
	// Build returns a picker that will be used by gRPC to pick a SubConn.
	Build(info PickerBuildInfo) balancer.Picker

PickerBuilder creates balancer.Picker.

type SubConnInfo added in v1.26.0

type SubConnInfo struct {
	Address resolver.Address // the address used to create this SubConn

SubConnInfo contains information about a SubConn created by the base balancer.

Jump to

Keyboard shortcuts

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