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 ¶
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 ¶
TargetAvailable is called when a target is becomes available.
func (*Connector) TargetUnavailable ¶
TargetUnavailable is called when a target becomes unavailable.
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(*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.