base

package
v1.26.0 Latest Latest
Warning

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

Go to latest
Published: Dec 17, 2019 License: Apache-2.0 Imports: 6 Imported by: 538

Documentation

Overview

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.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func NewBalancerBuilder

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

NewBalancerBuilder returns a balancer builder. The balancers built by this builder will use the picker builder to build pickers.

func NewBalancerBuilderV2 added in v1.26.0

func NewBalancerBuilderV2(name string, pb V2PickerBuilder, config Config) balancer.Builder

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

func NewBalancerBuilderWithConfig added in v1.17.0

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

NewBalancerBuilderWithConfig 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().

func NewErrPickerV2 added in v1.26.0

func NewErrPickerV2(err error) balancer.V2Picker

NewErrPickerV2 returns a V2Picker that always returns err on Pick().

Types

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 takes a slice of ready SubConns, and returns a picker that will be
	// used by gRPC to pick a SubConn.
	Build(readySCs map[resolver.Address]balancer.SubConn) 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.

type V2PickerBuilder added in v1.26.0

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

V2PickerBuilder creates balancer.V2Picker.

Jump to

Keyboard shortcuts

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