Documentation ¶
Index ¶
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") )
DefaultACL is the default ACL to use for creating znodes.
Functions ¶
This section is empty.
Types ¶
type Client ¶
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 // Stop should properly shutdown the client implementation Stop() }
Client is a wrapper around a lower level ZooKeeper client implementation.
type Option ¶
type Option func(*clientConfig) error
Option functions enable friendly APIs.
func ConnectTimeout ¶
ConnectTimeout returns an Option specifying a non-default connection timeout when we try to establish a connection to a ZooKeeper server.
func Credentials ¶
Credentials returns an Option specifying a user/password combination which the client will use to authenticate itself with.
func EventHandler ¶
EventHandler returns an Option specifying a callback function to handle incoming zk.Event payloads (ZooKeeper connection events).
func Payload ¶
Payload returns an Option specifying non-default data values for each znode created by CreateParentNodes.
func SessionTimeout ¶
SessionTimeout returns an Option specifying a non-default session timeout.
type Publisher ¶
type Publisher struct {
// contains filtered or unexported fields
}
Publisher yield endpoints stored in a certain ZooKeeper path. Any kind of change in that path is watched and will update the Publisher endpoints.
func NewPublisher ¶
func NewPublisher(c Client, path string, f loadbalancer.Factory, logger log.Logger) (*Publisher, error)
NewPublisher returns a ZooKeeper publisher. ZooKeeper will start watching the given path for changes and update the Publisher endpoints.