etcdd

package module
v0.0.0-...-55528cd Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 6, 2016 License: Apache-2.0 Imports: 3 Imported by: 0

README

etcdd

etcd service discovery, compatible with v2 and v3 etcd.

getting

go get github.com/4396/etcdd

usage

new discoverer
endpoints := []string{
    "http://127.0.0.1:2379",
}

dv2, err := etcdd.NewV2(endpoints)
if err != nil {
    // ...
}
dv3, err := etcdd.NewV3(endpoints)
if err != nil {
    // ...
}
register and unregister
svrname := "svr1"
svraddr := "127.0.0.1:1234"
namespace := "/services"
timeout := time.Second * 5

// register service, returns keepalive function
keepalive, err := dv3.Register(namespace, svrname, svraddr, timeout * 2)
if err != nil {
    // ...
}
// unregister service
defer dv3.Unregister(namespace, svrname)

// keep alive service
ticker := time.NewTicker(timeout)
for {
    select {
    case <-ticker.C:
        if err = keepalive(); err != nil {
            // ...
        }
    }
}
watch namespace
// watch namespace, returns chan event and cancel function
event, cancel, err := dv3.Watch(namespace)
if err != nil {
    // ...
}
// cancel watch
defer cancel()

for {
    select {
    case ev, ok := <-event:
        if ok {
            fmt.Println(ev.Action, ev.Name, ev.Addr)
        }
    }
}
list services
svrs, err := dv3.Services(namespace)
if err != nil {
    // ...
}
for name, addr := range svrs {
    fmt.Println(name, addr)
}
version
ver := dv3.Version()
if ver != 3 {
    // ...
}
close
err := dv3.Close()
if err != nil {
    // ...
}

example

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func NewV2

func NewV2(endpoints []string) (api.Discoverer, error)

NewV2 returns v2 discoverer

func NewV2WithAuth

func NewV2WithAuth(endpoints []string, username, password string) (api.Discoverer, error)

NewV2WithAuth need username and password

func NewV3

func NewV3(endpoints []string) (api.Discoverer, error)

NewV3 returns v3 discoverer

func NewV3WithAuth

func NewV3WithAuth(endpoints []string, username, password string) (api.Discoverer, error)

NewV3WithAuth need username and password

Types

This section is empty.

Directories

Path Synopsis
example

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL