golang对etcd存取和数值监测的实现
2019-09-13 10:59
1281 查看
测试代码如下
package main import ( "fmt" "log" "time" "go.etcd.io/etcd/clientv3" "golang.org/x/net/context" ) var ( dialTimeout = 5 * time.Second requestTimeout = 2 * time.Second endpoints = []string{"192.168.99.106:2379", "192.168.99.107:2379", "192.168.99.108:2379"} ) func main() { cli, err := clientv3.New(clientv3.Config{ Endpoints: endpoints, DialTimeout: dialTimeout, }) if err != nil { log.Fatal(err) } defer cli.Close() key1, value1 := "testkey1", "value" ctx, cancel := context.WithTimeout(context.Background(), requestTimeout) _, err = cli.Put(ctx, key1, value1) cancel() if err != nil { log.Println("Put failed. ", err) } else { log.Printf("Put {%s:%s} succeed\n", key1, value1) } ctx, cancel = context.WithTimeout(context.Background(), requestTimeout) resp, err := cli.Get(ctx, key1) cancel() if err != nil { log.Println("Get failed. ", err) return } for _, kv := range resp.Kvs { log.Printf("Get {%s:%s} \n", kv.Key, kv.Value) } done := make(chan bool) go func() { wch := cli.Watch(context.Background(), key1) for item := range wch { for _, ev := range item.Events { log.Printf("Type:%s, key:%s, value:%s\n", ev.Type, ev.Kv.Key, ev.Kv.Value) } } }() go func() { for cnt := 0; cnt < 11; cnt++ { value := fmt.Sprintf("%s%d", "value", cnt) _, err = cli.Put(context.Background(), key1, value) if err != nil { log.Println("Put failed. ", err) } else { log.Printf("Put {%s:%s} succeed\n", key1, value) } } }() <-done log.Println("Done!") }
测试结果如下
以上就是本文的全部内容,希望对大家的学习有所帮助
相关文章推荐
- golang基础-etcd介绍与使用、etcd存取值、etcd监测数据写入
- kubernetes集群中利用etcd和grpc实现golang服务间通信
- 记录一个go实现 etcd存取的小demo以便使用
- click事件无法触发、div存取数值
- golang实现简单的udp协议服务端与客户端示例
- node.js开发中使用Node Supervisor实现监测文件修改并自动重启应用
- Golang源码探索(三) GC的实现原理
- setTimeout使用闭包功能,实现定时打印数值
- Golang实现ping
- golang实现单链表的基本操作
- 使用云(BAE)实现android应用数据的远程存取(MySQL)
- 使用haproxy来实现sphinx负载均衡与健康监测
- VC++实现Windows回收站的文件存取
- Powershell实现监测服务器连通状态
- Java实现MySQL图片存取操作
- 如何在AODV(NS-2)中实现混杂模式并且实现邻居监测功能
- Golang通过Thrift框架完美实现跨语言调用
- 【典型案例】NASA使用MODIS 和在线影像分析技术实现全球洪水监测
- etcd:从应用场景到实现原理的全方位解读
- 一个简单的Golang实现的HTTP Proxy