Documentation ¶
Overview ¶
Package mdns is a multicast dns registry
Package registry is an interface for service discovery
Index ¶
- Variables
- func Deregister(s *Service) error
- func Register(s *Service, opts ...RegisterOption) error
- func String() string
- type Endpoint
- type Event
- type EventType
- type Node
- type Option
- type Options
- type RegisterOption
- type RegisterOptions
- type Registry
- type Result
- type Service
- type Value
- type WatchOption
- type WatchOptions
- type Watcher
Constants ¶
This section is empty.
Variables ¶
View Source
var ( DefaultRegistry = NewRegistry() // Not found error when GetService is called ErrNotFound = errors.New("service not found") // Watcher stopped error when watcher is stopped ErrWatcherStopped = errors.New("watcher stopped") )
Functions ¶
func Register ¶
func Register(s *Service, opts ...RegisterOption) error
Register a service node. Additionally supply options such as TTL.
Types ¶
type Event ¶ added in v1.11.0
type Event struct { // Id is registry id Id string // Type defines type of event Type EventType // Timestamp is event timestamp Timestamp time.Time // Service is registry service Service *Service }
Event is registry event
type RegisterOption ¶
type RegisterOption func(*RegisterOptions)
func RegisterTTL ¶
func RegisterTTL(t time.Duration) RegisterOption
type RegisterOptions ¶
type Registry ¶
type Registry interface { Init(...Option) error Options() Options Register(*Service, ...RegisterOption) error Deregister(*Service) error GetService(string) ([]*Service, error) ListServices() ([]*Service, error) Watch(...WatchOption) (Watcher, error) String() string }
The registry provides an interface for service discovery and an abstraction over varying implementations {consul, etcd, zookeeper, ...}
func NewRegistry ¶
NewRegistry returns a new default registry which is mdns
type Result ¶
Result is returned by a call to Next on the watcher. Actions can be create, update, delete
type Service ¶
type Service struct { Name string `json:"name"` Version string `json:"version"` Metadata map[string]string `json:"metadata"` Endpoints []*Endpoint `json:"endpoints"` Nodes []*Node `json:"nodes"` }
func CopyService ¶ added in v1.11.0
CopyService make a copy of service
func GetService ¶
Retrieve a service. A slice is returned since we separate Name/Version.
func ListServices ¶
List the services. Only returns service names
type WatchOption ¶ added in v0.4.0
type WatchOption func(*WatchOptions)
type WatchOptions ¶ added in v0.4.0
Source Files ¶
Directories ¶
Path | Synopsis |
---|---|
Package cache provides a registry cache
|
Package cache provides a registry cache |
Package gossip provides a gossip registry based on hashicorp/memberlist
|
Package gossip provides a gossip registry based on hashicorp/memberlist |
proto
Package gossip is a generated protocol buffer package.
|
Package gossip is a generated protocol buffer package. |
Package mdns provides a multicast dns registry
|
Package mdns provides a multicast dns registry |
Package memory provides an in-memory registry
|
Package memory provides an in-memory registry |
Package service uses the registry service
|
Package service uses the registry service |
Click to show internal directories.
Click to hide internal directories.