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.