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 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("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 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 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 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 | 
 Click to show internal directories. 
   Click to hide internal directories.