package balancer

import "github.com/ydb-platform/ydb-go-sdk/v3/internal/balancer"

Index

Variables

var ErrClusterEmpty = xerrors.Wrap(fmt.Errorf("cluster empty"))

Functions

func WithEndpoint

func WithEndpoint(ctx context.Context, endpoint Endpoint) context.Context

Types

type Connection

type Connection interface {
	Info
	Router
	Discoverer
}

func New

func New(
	ctx context.Context,
	c config.Config,
	pool *conn.Pool,
	opts ...discoveryConfig.Option,
) (_ Connection, err error)

type Discoverer

type Discoverer interface {
	Discovery() discovery.Client
}

type Endpoint

type Endpoint interface {
	NodeID() uint32
}

func ContextEndpoint

func ContextEndpoint(ctx context.Context) (e Endpoint, ok bool)

type Info

type Info interface {
	// Endpoint returns initial endpoint
	Endpoint() string

	// Name returns balancer name
	Name() string

	// Secure returns true if balancer connection is secure
	Secure() bool
}

type Router

type Router interface {
	// ClientConnInterface interface allows Router use as grpc.ClientConnInterface
	// with lazy getting raw grpc-connection in Invoke() or NewStream() stages.
	// Lazy getting grpc-connection must use for embedded into driver client-side
	// balancing may be put into code-generated client constructor as is.
	grpc.ClientConnInterface
	closer.Closer
}

Source Files

balancer.go connections_state.go ctx.go interfaces.go local_dc.go

Directories

PathSynopsis
internal/balancer/config
Version
v3.26.0
Published
May 20, 2022
Platform
linux/amd64
Imports
21 packages
Last checked
4 minutes ago

Tools for package owners.