[英]go-zookeeper Connect returns without a valid connection
我有一个关于Zookeeper的问题,我正在尝试使用Zookeeper实施简单的服务发现,我正在使用go-zookeeper: https : //github.com/samuel/go-zookeeper
我的问题是,无论何时我使用以下方式连接到zookeeper:
zoo_keeper, _, err := zk.Connect(s, time.Second)
该函数将立即返回,并且不会报告任何错误,但是还没有实际的有效连接。 现在,例如,如果我想创建znodes,在执行此操作之前,我需要检查什么以确保我具有有效的连接?
在尝试了几件事之后,并感谢Imesha的建议,我可以使用渠道实现我想要的。 以下是我的示例代码。
func zk_connect(zk_server string) (*zk.Conn, error) {
zoo_keeper, session, err := zk.Connect([]string{zk_server}, time.Second)
if err != nil {
return nil, err
}
for event := range session {
if event.State == zk.StateConnected {
log.Printf("zookeeper State: %s\n", event.State)
break
}
}
return zoo_keeper, nil
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.