簡體   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