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 NewErrPicker

func NewErrPicker(err error) balancer.Picker

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

Types

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.