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.