Documentation
¶
Overview ¶
Package etcd provides a subscriber implementation for etcd.
Index ¶
Constants ¶
This section is empty.
Variables ¶
var ( ErrNoKey = errors.New("no key provided") ErrNoValue = errors.New("no value provided") )
Functions ¶
This section is empty.
Types ¶
type Client ¶
type Client interface {
// GetEntries will query the given prefix in etcd and returns a set of entries.
GetEntries(prefix string) ([]string, error)
// WatchPrefix starts watching every change for given prefix in etcd. When an
// change is detected it will populate the responseChan when an *etcd.Response.
WatchPrefix(prefix string, responseChan chan *etcd.Response)
// Register a service with etcd.
Register(s Service) error
// Deregister a service with etcd.
Deregister(s Service) error
}
Client is a wrapper around the etcd client.
func NewClient ¶
NewClient returns an *etcd.Client with a connection to the named machines. It will return an error if a connection to the cluster cannot be made. The parameter machines needs to be a full URL with schemas. e.g. "http://localhost:2379" will work, but "localhost:2379" will not.
type ClientOptions ¶
type ClientOptions struct {
Cert string
Key string
CaCert string
DialTimeout time.Duration
DialKeepAline time.Duration
HeaderTimeoutPerRequest time.Duration
}
ClientOptions defines options for the etcd client.
type Registrar ¶
type Registrar struct {
// contains filtered or unexported fields
}
Registrar registers service instance liveness information to etcd.
func NewRegistrar ¶
NewRegistrar returns a etcd Registrar acting on the provided catalog registration.
func (*Registrar) Deregister ¶
func (r *Registrar) Deregister()
Deregister implements sd.Registrar interface.
type Service ¶
type Service struct {
Key string // discovery key, example: /myorganization/myplatform/
Value string // service name value, example: addsvc
DeleteOptions *etcd.DeleteOptions
}
Service holds the key, value and instance identifying data you want to publish to etcd.
type Subscriber ¶
type Subscriber struct {
// contains filtered or unexported fields
}
Subscriber yield endpoints stored in a certain etcd keyspace. Any kind of change in that keyspace is watched and will update the Subscriber endpoints.
func NewSubscriber ¶
func NewSubscriber(c Client, prefix string, factory sd.Factory, logger log.Logger) (*Subscriber, error)
NewSubscriber returns an etcd subscriber. It will start watching the given prefix for changes, and update the endpoints.