package balancer

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

Index

Functions

func IsOkConnection

func IsOkConnection(c conn.Conn, bannedIsOk bool) bool

Types

type Balancer

type Balancer interface {
	// Next returns next connection for request.
	Next(ctx context.Context, opts ...NextOption) conn.Conn

	// Create same balancer instance with new connections
	Create(conns []conn.Conn) Balancer
}

Balancer is an interface that implements particular load-balancing algorithm.

Balancer methods called synchronized. That is, implementations must not provide additional goroutine safety.

type NextOption

type NextOption func(o *NextOptions)

func WithAcceptBanned

func WithAcceptBanned(val bool) NextOption

func WithOnBadState

func WithOnBadState(callback OnBadStateCallback) NextOption

type NextOptions

type NextOptions struct {
	OnBadState   OnBadStateCallback
	AcceptBanned bool
}

func MakeNextOptions

func MakeNextOptions(opts ...NextOption) NextOptions

func (*NextOptions) Discovery

func (o *NextOptions) Discovery(ctx context.Context)

type OnBadStateCallback

type OnBadStateCallback func(ctx context.Context)

Source Files

balancer.go

Directories

PathSynopsis
internal/balancer/ctxbalancer
internal/balancer/mock
internal/balancer/multi
internal/balancer/rr
internal/balancer/single
Version
v3.25.3
Published
May 15, 2022
Platform
linux/amd64
Imports
2 packages
Last checked
4 minutes ago

Tools for package owners.