grpcgoogle.golang.org/grpc/internal/balancer/gracefulswitch Index | Files

package gracefulswitch

import "google.golang.org/grpc/internal/balancer/gracefulswitch"

Package gracefulswitch implements a graceful switch load balancer.

Index

Types

type Balancer

type Balancer struct {
	// contains filtered or unexported fields
}

Balancer is a utility to gracefully switch from one balancer to a new balancer. It implements the balancer.Balancer interface.

func NewBalancer

func NewBalancer(cc balancer.ClientConn, opts balancer.BuildOptions) *Balancer

NewBalancer returns a graceful switch Balancer.

func (*Balancer) Close

func (gsb *Balancer) Close()

Close closes any active child balancers.

func (*Balancer) ExitIdle

func (gsb *Balancer) ExitIdle()

ExitIdle forwards the call to the latest balancer created.

If the latest balancer does not support ExitIdle, the subConns are re-connected to manually.

func (*Balancer) ResolverError

func (gsb *Balancer) ResolverError(err error)

ResolverError forwards the error to the latest balancer created.

func (*Balancer) SwitchTo

func (gsb *Balancer) SwitchTo(builder balancer.Builder) error

SwitchTo initializes the graceful switch process, which completes based on connectivity state changes on the current/pending balancer. Thus, the switch process is not complete when this method returns. This method must be called synchronously alongside the rest of the balancer.Balancer methods this Graceful Switch Balancer implements.

func (*Balancer) UpdateClientConnState

func (gsb *Balancer) UpdateClientConnState(state balancer.ClientConnState) error

UpdateClientConnState forwards the update to the latest balancer created.

func (*Balancer) UpdateSubConnState

func (gsb *Balancer) UpdateSubConnState(sc balancer.SubConn, state balancer.SubConnState)

UpdateSubConnState forwards the update to the appropriate child.

Source Files

gracefulswitch.go

Version
v1.52.0
Published
Jan 10, 2023
Platform
linux/amd64
Imports
7 packages
Last checked
47 minutes ago

Tools for package owners.