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 ¶
var NewErrPickerV2 = NewErrPicker
NewErrPickerV2 is temporarily defined for backward compatibility reasons.
Deprecated: use NewErrPicker instead.
Functions ¶
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 ¶
NewErrPicker returns a Picker 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 returns a picker that will be used by gRPC to pick a SubConn. Build(info PickerBuildInfo) balancer.Picker }
PickerBuilder creates balancer.Picker.
type SubConnInfo ¶
SubConnInfo contains information about a SubConn created by the base balancer.