kit: github.com/go-kit/kit/sd/zk Index | Files

package zk

import "github.com/go-kit/kit/sd/zk"

Package zk provides subscriber and registrar implementations for ZooKeeper.

Index

Package Files

client.go doc.go logwrapper.go registrar.go subscriber.go

Constants

const (
    // DefaultConnectTimeout is the default timeout to establish a connection to
    // a ZooKeeper node.
    DefaultConnectTimeout = 2 * time.Second
    // DefaultSessionTimeout is the default timeout to keep the current
    // ZooKeeper session alive during a temporary disconnect.
    DefaultSessionTimeout = 5 * time.Second
)

Variables

var (
    DefaultACL            = zk.WorldACL(zk.PermAll)
    ErrInvalidCredentials = errors.New("invalid credentials provided")
    ErrClientClosed       = errors.New("client service closed")
    ErrNotRegistered      = errors.New("not registered")
    ErrNodeNotFound       = errors.New("node not found")
)

DefaultACL is the default ACL to use for creating znodes.

type Client Uses

type Client interface {
    // GetEntries should query the provided path in ZooKeeper, place a watch on
    // it and retrieve data from its current child nodes.
    GetEntries(path string) ([]string, <-chan zk.Event, error)
    // CreateParentNodes should try to create the path in case it does not exist
    // yet on ZooKeeper.
    CreateParentNodes(path string) error
    // Register a service with ZooKeeper.
    Register(s *Service) error
    // Deregister a service with ZooKeeper.
    Deregister(s *Service) error
    // Stop should properly shutdown the client implementation
    Stop()
}

Client is a wrapper around a lower level ZooKeeper client implementation.

func NewClient Uses

func NewClient(servers []string, logger log.Logger, options ...Option) (Client, error)

NewClient returns a ZooKeeper client with a connection to the server cluster. It will return an error if the server cluster cannot be resolved.

type Option Uses

type Option func(*clientConfig) error

Option functions enable friendly APIs.

func ACL Uses

func ACL(acl []zk.ACL) Option

ACL returns an Option specifying a non-default ACL for creating parent nodes.

func ConnectTimeout Uses

func ConnectTimeout(t time.Duration) Option

ConnectTimeout returns an Option specifying a non-default connection timeout when we try to establish a connection to a ZooKeeper server.

func Credentials Uses

func Credentials(user, pass string) Option

Credentials returns an Option specifying a user/password combination which the client will use to authenticate itself with.

func EventHandler Uses

func EventHandler(handler func(zk.Event)) Option

EventHandler returns an Option specifying a callback function to handle incoming zk.Event payloads (ZooKeeper connection events).

func Payload Uses

func Payload(payload [][]byte) Option

Payload returns an Option specifying non-default data values for each znode created by CreateParentNodes.

func SessionTimeout Uses

func SessionTimeout(t time.Duration) Option

SessionTimeout returns an Option specifying a non-default session timeout.

type Registrar Uses

type Registrar struct {
    // contains filtered or unexported fields
}

Registrar registers service instance liveness information to ZooKeeper.

func NewRegistrar Uses

func NewRegistrar(client Client, service Service, logger log.Logger) *Registrar

NewRegistrar returns a ZooKeeper Registrar acting on the provided catalog registration.

func (*Registrar) Deregister Uses

func (r *Registrar) Deregister()

Deregister implements sd.Registrar interface.

func (*Registrar) Register Uses

func (r *Registrar) Register()

Register implements sd.Registrar interface.

type Service Uses

type Service struct {
    Path string // discovery namespace, example: /myorganization/myplatform/
    Name string // service name, example: addscv
    Data []byte // instance data to store for discovery, example: 10.0.2.10:80
    // contains filtered or unexported fields
}

Service holds the root path, service name and instance identifying data you want to publish to ZooKeeper.

type Subscriber Uses

type Subscriber struct {
    // contains filtered or unexported fields
}

Subscriber yield endpoints stored in a certain ZooKeeper path. Any kind of change in that path is watched and will update the Subscriber endpoints.

func NewSubscriber Uses

func NewSubscriber(c Client, path string, factory sd.Factory, logger log.Logger) (*Subscriber, error)

NewSubscriber returns a ZooKeeper subscriber. ZooKeeper will start watching the given path for changes and update the Subscriber endpoints.

func (*Subscriber) Endpoints Uses

func (s *Subscriber) Endpoints() ([]endpoint.Endpoint, error)

Endpoints implements the Subscriber interface.

func (*Subscriber) Stop Uses

func (s *Subscriber) Stop()

Stop terminates the Subscriber.

Package zk imports 10 packages (graph). Updated 2017-03-23. Refresh now. Tools for package owners.