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