繁体   English   中英

go-zookeeper Connect在没有有效连接的情况下返回

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM