base

package
v1.0.0 Latest Latest
Warning

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

Go to latest
Published: Oct 26, 2020 License: Apache-2.0 Imports: 7 Imported by: 0

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

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

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

func NewBalancerBuilderWithConfig

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

func NewErrPickerV2(err error) balancer.V2Picker

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

Types

type Config

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

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

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

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