in clients/zk_client/zk_client.go [52:75]
func (zc *ShenYuZkClient) NewClient(clientParam interface{}) (client interface{}, createResult bool, err error) {
zcp, ok := clientParam.(*ZkClientParam)
if !ok {
logger.Fatalf("The clientParam must not nil!")
}
//client = new(ShenYuZkClient)
if len(zcp.ZkRoot) == 0 {
logger.Fatalf("The param zkRoot must set a value!")
}
conn, _, err := zk.Connect(zcp.ZkServers, time.Duration(constants.DEFAULT_ZOOKEEPER_CLIENT_TIME)*time.Second)
if err != nil {
if err := zc.ensureRoot(); err != nil {
zc.Close()
return &ShenYuZkClient{}, false, err
}
}
return &ShenYuZkClient{
Zcp: &ZkClientParam{
ZkRoot: zcp.ZkRoot,
ZkServers: zcp.ZkServers,
},
ZkClient: conn,
}, true, nil
}