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 ¶
- func NewBalancerBuilder(name string, pb PickerBuilder) balancer.Builder
- func NewBalancerBuilderV2(name string, pb V2PickerBuilder, config Config) balancer.Builder
- func NewBalancerBuilderWithConfig(name string, pb PickerBuilder, config Config) balancer.Builder
- func NewErrPicker(err error) balancer.Picker
- func NewErrPickerV2(err error) balancer.V2Picker
- type Config
- type PickerBuildInfo
- type PickerBuilder
- type SubConnInfo
- type V2PickerBuilder
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 ¶
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 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 ¶
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.