github.com/qiuhoude/go-web@v0.0.0-20220223060959-ab545e78f20d/etcd/cluster/v2/main.go (about) 1 package main 2 3 import ( 4 "context" 5 "go.etcd.io/etcd/client" 6 "log" 7 "time" 8 ) 9 10 func main() { 11 cfg := client.Config{ 12 Endpoints: []string{"http://192.168.1.151:2377"}, 13 Transport: client.DefaultTransport, 14 // set timeout per request to fail fast when the target endpoint is unavailable 15 HeaderTimeoutPerRequest: time.Second, 16 } 17 c, err := client.New(cfg) 18 if err != nil { 19 log.Fatal(err) 20 } 21 kapi := client.NewKeysAPI(c) 22 // set "/foo" key with "bar" value 23 log.Print("Setting '/foo' key with 'bar' value") 24 resp, err := kapi.Set(context.Background(), "/foo", "bar", nil) 25 if err != nil { 26 log.Fatal(err) 27 } else { 28 // print common key info 29 log.Printf("Set is done. Metadata is %q\n", resp) 30 } 31 // get "/foo" key's value 32 log.Print("Getting '/foo' key value") 33 resp, err = kapi.Get(context.Background(), "/foo", nil) 34 if err != nil { 35 log.Fatal(err) 36 } else { 37 // print common key info 38 log.Printf("Get is done. Metadata is %q\n", resp) 39 // print value 40 log.Printf("%q key has %q value\n", resp.Node.Key, resp.Node.Value) 41 } 42 }