cluster

package
v3.11.5 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 22, 2022 License: Apache-2.0 Imports: 16 Imported by: 0

Documentation

Index

Constants

View Source
const (
	MaxGetConnTimeout = 10 * time.Second
)

Variables

View Source
var (
	// ErrClusterClosed returned when requested on a closed cluster.
	ErrClusterClosed = errors.New("cluster closed")

	// ErrClusterEmpty returned when no connections left in cluster.
	ErrClusterEmpty = errors.New("cluster empty")

	// ErrUnknownEndpoint returned when no connections left in cluster.
	ErrUnknownEndpoint = errors.New("unknown endpoint")

	// ErrNilBalancerElement returned when requested on a nil Balancer element.
	ErrNilBalancerElement = errors.New("nil balancer element")
	// ErrUnknownBalancerElement returned when requested on a unknown Balancer element.
	ErrUnknownBalancerElement = errors.New("unknown balancer element")
	// ErrUnknownTypeOfBalancerElement returned when requested on a unknown types of Balancer element.
	ErrUnknownTypeOfBalancerElement = errors.New("unknown types of balancer element")
)

Functions

func DiffEndpoints

func DiffEndpoints(curr, next []endpoint.Endpoint, eq, add, del func(i, j int))

func SortEndpoints

func SortEndpoints(es []endpoint.Endpoint)

func WithEndpoint added in v3.7.0

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

func WithoutLock added in v3.11.4

func WithoutLock() crudOption

Types

type CRUD added in v3.10.0

type CRUD interface {
	// Insert inserts endpoint to cluster
	Insert(ctx context.Context, endpoint endpoint.Endpoint, opts ...crudOption) conn.Conn

	// Update updates endpoint in cluster
	Update(ctx context.Context, endpoint endpoint.Endpoint, opts ...crudOption) conn.Conn

	// Remove removes endpoint from cluster
	Remove(ctx context.Context, endpoint endpoint.Endpoint, opts ...crudOption) conn.Conn

	// Get gets conn from cluster
	Get(ctx context.Context, opts ...crudOption) (cc conn.Conn, err error)
}

type CRUDExplorerLocker added in v3.11.4

type CRUDExplorerLocker interface {
	CRUD
	Explorer
	Locker
}

type Cluster

type Cluster interface {
	closer.Closer
	CRUD
	Pessimizer
	Explorer
	Locker
	conn.PoolGetter
}

func New

func New(
	ctx context.Context,
	config config.Config,
	balancer balancer.Balancer,
) Cluster

type Endpoint added in v3.7.0

type Endpoint interface {
	NodeID() uint32
}

func ContextEndpoint added in v3.7.0

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

type Explorer added in v3.10.0

type Explorer interface {
	SetExplorer(repeater repeater.Repeater)
	Force()
}

type Locker added in v3.11.4

type Locker interface {
	Lock()
	Unlock()
}

type Pessimizer added in v3.10.0

type Pessimizer interface {
	Pessimize(ctx context.Context, endpoint endpoint.Endpoint) error
}

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL