etcd包不能导入的问题
go get go.etcd.io/etcd/clientv3
导包后去出现下面的问题
在go.mod添加
replace google.golang.org/grpc => google.golang.org/grpc v1.26.0
再导入即可:
go get go.etcd.io/etcd/clientv3
package main
import (
"context"
"fmt"
"go.etcd.io/etcd/clientv3"
"time"
)
func main() {
cli, err := clientv3.New(clientv3.Config{
Endpoints: []string{"127.0.0.1:2379"},
DialTimeout: time.Second * 5,
})
if err != nil {
fmt.Printf("connect to etcd failed,err=:%v", err)
return
}
defer cli.Close()
//put
ctx, cancel := context.WithTimeout(context.Background(), time.Second)
_, err = cli.Put(ctx, "s4", "good")
if err != nil {
fmt.Printf("put to etcd failed,err:%v \n", err)
}
cancel()
//get
ctx, cancel = context.WithTimeout(context.Background(), time.Second)
gr, err := cli.Get(ctx, "s4")
if err != nil {
fmt.Printf("get from etcd failed ,err:%v \n", err)
return
}
for _, ev := range gr.Kvs {
fmt.Printf("key:%s value:%s \n", ev.Key, ev.Value)
}
cancel()
}