golang基础-etcd介绍与使用、etcd存取值、etcd监测数据写入

golang基础-etcd介绍与使用、etcd存取值、etcd监测数据写入,第1张

概述etcd介绍与使用 etcd测试链接 etcd存取值 etcd检测Watch etcd介绍与使用 概念:高可用的分布式key-value存储,可以用于配置共享和服务发现。 类似项目:zookeeper和consul 开发语言:Go 接口:提供restful的http接口,使用简单 实现算法:基于raft算法的强一致性、高可用的服务存储目录 etcd搭建 a. 下载etcd release版本:ht etcd介绍与使用 etcd测试链接 etcd存取值 etcd检测Watch etcd介绍与使用

概念:高可用的分布式key-value存储,可以用于配置共享和服务发现。
类似项目:zookeeper和consul
开发语言:Go
接口:提供restful的http接口,使用简单
实现算法:基于raft算法的强一致性、高可用的服务存储目录

etcd搭建
a. 下载etcd release版本:https://github.com/coreos/etcd/releases/
b. ./bin/etcd即可以启动etcd
c. 使用etcdctl工具更改配置

etcd测试链接
package mainimport (    "fmt"    "github.com/coreos/etcd/clIEntv3"    "time")func main() {    /*        DialTimeout time.Duration `Json:"dial-timeout"`        Endpoints []string `Json:"endpoints"`    */    cli,err := clIEntv3.New(clIEntv3.Config{        Endpoints:   []string{"localhost:2379","localhost:22379","localhost:32379"},DialTimeout: 5 * time.Second,})    if err != nil {        fmt.Println("connect Failed,err:",err)        return    }    fmt.Println("connect succ")    defer cli.Close()}

输出如下:

PS E:\golang\go_pro\src\safly> go run main.goconnect succPS E:\golang\go_pro\src\safly>
etcd存取值
package mainimport (    "context"    "fmt"    "github.com/coreos/etcd/clIEntv3"    "time")func main() {    cli,err := clIEntv3.New(clIEntv3.Config{        Endpoints:   []string{"localhost:2379",DialTimeout: 5 * time.Second,})    if err != nil {        fmt.Println("connect Failed,err)        return    }    fmt.Println("connect succ")    defer cli.Close()    //设置1秒超时,访问etcd有超时控制    ctx,cancel := context.WithTimeout(context.Background(),time.Second)    // *** 作etcd    _,err = cli.Put(ctx,"/logagent/conf/","sample_value")    // *** 作完毕,取消etcd    cancel()    if err != nil {        fmt.Println("put Failed,err)        return    }    //取值,设置超时为1秒    ctx,cancel = context.WithTimeout(context.Background(),time.Second)    resp,err := cli.Get(ctx,"/logagent/conf/")    cancel()    if err != nil {        fmt.Println("get Failed,err)        return    }    for _,ev := range resp.Kvs {        fmt.Printf("%s : %s\n",ev.Key,ev.Value)    }}

输出如下:

PS E:\golang\go_pro\src\safly> go run example.goconnect succ/logagent/conf/ : sample_value
etcd检测Watch
package mainimport (    "context"    "fmt"    "time"    "github.com/coreos/etcd/clIEntv3")func main() {    cli,err)        return    }    fmt.Println("connect succ")    defer cli.Close()    cli.Put(context.Background(),"8888888")    for {        rch := cli.Watch(context.Background(),"/logagent/conf/")        for wresp := range rch {            for _,ev := range wresp.Events {                fmt.Printf("%s %q : %q\n",ev.Type,ev.Kv.Key,ev.Kv.Value)            }        }    }}
总结

以上是内存溢出为你收集整理的golang基础-etcd介绍与使用、etcd存取值、etcd监测数据写入全部内容,希望文章能够帮你解决golang基础-etcd介绍与使用、etcd存取值、etcd监测数据写入所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1273200.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-08
下一篇 2022-06-08

发表评论

登录后才能评论

评论列表(0条)

保存