clusterspecifier

package
v1.58.3 Latest Latest
Warning

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

Go to latest
Published: Oct 10, 2023 License: Apache-2.0 Imports: 1 Imported by: 0

Documentation

Overview

Package clusterspecifier contains the ClusterSpecifier interface and a registry for storing and retrieving their implementations.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Register

func Register(cs ClusterSpecifier)

Register registers the ClusterSpecifierPlugin to the ClusterSpecifier map. cs.TypeURLs() will be used as the types for this ClusterSpecifierPlugin.

NOTE: this function must only be called during initialization time (i.e. in an init() function), and is not thread-safe. If multiple cluster specifier plugins are registered with the same type URL, the one registered last will take effect.

func UnregisterForTesting added in v1.46.0

func UnregisterForTesting(typeURL string)

UnregisterForTesting unregisters the ClusterSpecifier for testing purposes.

Types

type BalancerConfig

type BalancerConfig []map[string]any

BalancerConfig is the Go Native JSON representation of a balancer configuration.

type ClusterSpecifier

type ClusterSpecifier interface {
	// TypeURLs are the proto message types supported by this
	// ClusterSpecifierPlugin. A ClusterSpecifierPlugin will be registered by
	// each of its supported message types.
	TypeURLs() []string
	// ParseClusterSpecifierConfig parses the provided configuration
	// proto.Message from the top level RDS configuration. The resulting
	// BalancerConfig will be used as configuration for a child LB Policy of the
	// Cluster Manager LB Policy. A nil BalancerConfig is invalid.
	ParseClusterSpecifierConfig(proto.Message) (BalancerConfig, error)
}

ClusterSpecifier defines the parsing functionality of a Cluster Specifier.

func Get

func Get(typeURL string) ClusterSpecifier

Get returns the ClusterSpecifier registered with typeURL.

If no cluster specifier is registered with typeURL, nil will be returned.

Directories

Path Synopsis
Package rls implements the RLS cluster specifier plugin.
Package rls implements the RLS cluster specifier plugin.

Jump to

Keyboard shortcuts

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