從零開始學(xué)習(xí)etcd的使用

etcd做注冊服務(wù)使用 類似java生態(tài)的zookeeper,最近在學(xué)學(xué)習(xí)

1、下載etcd包

//直接下載即可(因?yàn)榘容^大有翻墻,可以直接去 https://golangtc.com/download/package 下載)
go get  go.etcd.io/etcd/clientv3

2、使用記錄

packge main

import (
    "context"
    "fmt"
    "go.etcd.io/etcd/clientv3"
    //"log/syslog"
    "time"
)

func main() {
  var (
        config clientv3.Config
        client *clientv3.Client
        err error
        kv clientv3.KV
        putResp *clientv3.PutResponse
        getResp *clientv3.GetResponse
        delResp *clientv3.DeleteResponse
        keepResp *clientv3.LeaseKeepAliveResponse
        keepRespChan <-chan *clientv3.LeaseKeepAliveResponse
    )
}
//客戶端配置
config = clientv3.Config{
    Endpoints:[]string{"127.0.0.1:2379"},
    DialTimeout:5 * time.Second,
}
    //建立連接
if client,err = clientv3.New(config);err != nil {
    fmt.Println(err)
    return
}
//得到操作etcd鍵值對的kv
kv = clientv3.NewKV(client)

//寫入etcd
if putResp,err = kv.Put(context.TODO(),"/cron/jobs/job2","....",clientv3.WithPrevKV()/*可選參數(shù),得到上次操作的值*/);err != nil {
    fmt.Println(err)
} else {
    fmt.Println(putResp.Header.Revision)

    if putResp.PrevKv != nil {
        fmt.Println(string(putResp.PrevKv.Value))
    }
}
//讀取某個key的value值
getResp,err = kv.Get(context.TODO(),"/cron/jobs/job1"/*,clientv3.WithCountOnly()可選參數(shù),得到數(shù)量*/)
    if err != nil {
        fmt.Println(err)
        return
    } else {
        fmt.Println(getResp.Kvs[0].Value/*得到的是一個切片*/)
    }
//讀取前綴為XXX的所有的key的value(需要加上參數(shù)clientv3.WithPrefix())
if getResp,err = kv.Get(context.TODO(),"/cron/jobs/",clientv3.WithPrefix());err != nil {
        fmt.Println(err)
        return
    } else {
        fmt.Println(getResp.Kvs)
    }
//刪除操作
if delResp,err = kv.Delete(context.TODO(),"/cron/jobs/job2",clientv3.WithPrevKV()/*得到刪除之前的值*/);err != nil {
        fmt.Println(err)
        return
    } else {
        if len(delResp.PrevKvs) != 0 {
            fmt.Println(delResp.PrevKvs)
        }
    }
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • from http://www.infoq.com/cn/articles/etcd-interpretation...
    小樹苗苗閱讀 14,105評論 3 38
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,578評論 19 139
  • 今天我非??鞓?,因?yàn)橐驗(yàn)槟棠虂砹?。我聽過一首歌叫爺爺奶奶的故事。我喜歡奶奶因?yàn)槟棠探o我買筆買衣服。姥姥也來啦!我也...
    金落九天閱讀 173評論 0 1
  • 我不害怕時光荏苒 也不害怕人盡黃昏 怕的是 墳旁沒有你 而我 空歡喜
    北方女閱讀 205評論 0 2
  • 最近在看一本教你寫文案的書,書名叫“那些讓文案絕望的文案”,為什么會買這本書呢?因?yàn)榍岸螘r間想出來找工作,在想做什...
    Rose醬閱讀 185評論 0 0

友情鏈接更多精彩內(nèi)容