discovery

package
v0.3.1 Latest Latest
Warning

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

Go to latest
Published: Mar 8, 2020 License: MIT Imports: 7 Imported by: 0

Documentation

Overview

Package discovery provides mechanisms for discovery of config API servers.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func DefaultDialer

func DefaultDialer(ctx context.Context, t *Target) (*grpc.ClientConn, error)

DefaultDialer is the default dialer used to connect to a gRPC target.

Types

type Client

type Client struct {
	*api.Client

	// Target is the discovered gRPC target that the client connects to.
	Target *Target
}

Client is an API client that knows the target it connects to.

type ClientObserver

type ClientObserver interface {
	// ClientConnected is called when a connection to a config API server is
	// established.
	ClientConnected(*Client)

	// ClientDisconnected is called when a connection to a config API server is
	// severed.
	ClientDisconnected(*Client)
}

ClientObserver is notified when connections to config API servers are established and severed.

type ClientObserverSet

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

ClientObserverSet is a client observer that publishes to other observers.

It implements both the ClientObserver and ClientPublisher interfaces.

func NewClientObserverSet

func NewClientObserverSet(observers ...ClientObserver) *ClientObserverSet

NewClientObserverSet registers the given observers with a new observer set and returns it.

func (*ClientObserverSet) ClientConnected

func (s *ClientObserverSet) ClientConnected(c *Client)

ClientConnected notifies the registered observers that c has connected.

func (*ClientObserverSet) ClientDisconnected

func (s *ClientObserverSet) ClientDisconnected(c *Client)

ClientDisconnected notifies the registered observers that c has disconnected.

func (*ClientObserverSet) RegisterClientObserver

func (s *ClientObserverSet) RegisterClientObserver(o ClientObserver)

RegisterClientObserver registers o to be notified when connections to config API servers are established and servered.

func (*ClientObserverSet) UnregisterClientObserver

func (s *ClientObserverSet) UnregisterClientObserver(o ClientObserver)

UnregisterClientObserver stops o from being notified when connections to config API servers are established and servered.

type Connector

type Connector struct {
	// Observer is notified when a config API client connects to or disconnects
	// from a server. It must not be nil.
	Observer ClientObserver

	// Dial is the dialer used to connect to the discovered targets.
	// If it is nil, DefaultDialer is used.
	Dial Dialer

	// BackoffStrategy controls how long to wait between failures to dial a
	// discovered target.
	BackoffStrategy backoff.Strategy

	// Logger is the target for log messages about dialing failures.
	Logger logging.Logger
	// contains filtered or unexported fields
}

Connector connects to discovered targets and notifies a client observer if they implement the config API.

func (*Connector) TargetAvailable

func (c *Connector) TargetAvailable(t *Target)

TargetAvailable is called when a target is becomes available.

func (*Connector) TargetUnavailable

func (c *Connector) TargetUnavailable(t *Target)

TargetUnavailable is called when a target becomes unavailable.

type Dialer

type Dialer func(context.Context, *Target) (*grpc.ClientConn, error)

Dialer connects to a gRPC target.

type MetaData

type MetaData map[interface{}]interface{}

MetaData is a container for meta-data about a target.

type Target

type Target struct {
	// Name is the target name used to dial the endpoint. The syntax is defined
	// in https://github.com/grpc/grpc/blob/master/doc/naming.md.
	Name string

	// Options is a set of grpc.DialOptions used when dialing this target.
	// The options must not include grpc.WithBlock().
	Options []grpc.DialOption

	// MetaData contains driver-specific meta-data about the target.
	MetaData MetaData
}

Target represents some dialable gRPC target, typically a single gRPC server.

type TargetObserver

type TargetObserver interface {
	// TargetAvailable is called when a target becomes available.
	TargetAvailable(*Target)

	// TargetUnavailable is called when a target becomes unavailable.
	TargetUnavailable(*Target)
}

TargetObserver is notified when config API targets are discovered.

type TargetObserverSet

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

TargetObserverSet is a target observer that publishes to other observers.

It implements both the TargetObserver and TargetPublisher interfaces.

func NewTargetObserverSet

func NewTargetObserverSet(observers ...TargetObserver) *TargetObserverSet

NewTargetObserverSet registers the given observers with a new observer set and returns it.

func (*TargetObserverSet) RegisterTargetObserver

func (s *TargetObserverSet) RegisterTargetObserver(o TargetObserver)

RegisterTargetObserver registers o to be notified when targets become available and unavailable.

func (*TargetObserverSet) TargetAvailable

func (s *TargetObserverSet) TargetAvailable(t *Target)

TargetAvailable notifies the registered observers that t is available.

func (*TargetObserverSet) TargetUnavailable

func (s *TargetObserverSet) TargetUnavailable(t *Target)

TargetUnavailable notifies the registered observers that t is unavailable.

func (*TargetObserverSet) UnregisterTargetObserver

func (s *TargetObserverSet) UnregisterTargetObserver(o TargetObserver)

UnregisterTargetObserver stops o from being notified when targets become available and unavailable.

Directories

Path Synopsis
Package simpledns discovers config API servers by performing simple DNS queries.
Package simpledns discovers config API servers by performing simple DNS queries.

Jump to

Keyboard shortcuts

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