Etcd观看不同的客户

时间:2018-01-17 10:03:00

标签: go etcd etcd3

我很难让etcd watch与客户组合工作。

什么有效:我在Watch客户端golang进行了put我也在那里做etcdctl。然后观察寄存器更改。如果我以相同的方式使用go run main.go (true|false) (true|false)),即在命令行中观察/收听它也可以。

什么不起作用:我从命令行发布并在go中观看,反之亦然。

  • 观看命令行,放golang:不工作
  • 监视命令行,放置命令行:工作
  • 观看golang,把命令行:不起作用
  • 看golang,把golang:作品

By"不起作用"我的意思是观察者没有被触发。

我正在玩的代码(你可以像package main import ( "github.com/coreos/etcd/clientv3" "context" "time" "fmt" "os" ) func main() { listen := os.Args[1] submit := os.Args[2] cfg := clientv3.Config{ Endpoints: []string{"http://10.0.75.1:2379"}, } c,_ := clientv3.New(cfg) if listen == "true" { fmt.Println("listening: on") ch := c.Watch(context.Background(), "/foo") go func() { for s := range ch { fmt.Println("change: ", string(s.Events[0].Kv.Value)) } }() } else { fmt.Println("listening: off") } if submit == "true" { fmt.Println("submiting: on") go func() { for { c.Put(context.Background(), "/foo", time.Now().String()) time.Sleep(1 * time.Second) } }() } else { fmt.Println("submiting: off") } println("waiting 1h") time.Sleep(1 * time.Hour) } 一样运行:

etcdctl
我用来发布/观看的

no_proxy=10.0.75.1 ETCDCTL_API=3 etcdctl.exe --endpoints=http://10.0.75.1:2379 put /foo "$(date)" 命令:

更新

no_proxy=10.0.75.1 ETCDCTL_API=3 etcdctl.exe --endpoints=http://10.0.75.1:2379 watch /foo

手表:

{{1}}

0 个答案:

没有答案