gitee.com/h79/goutils@v1.22.10/discovery/zookeeper/base.go (about) 1 package zookeeper 2 3 import ( 4 "gitee.com/h79/goutils/discovery/config" 5 "gitee.com/h79/goutils/discovery/service" 6 "github.com/go-zookeeper/zk" 7 "time" 8 ) 9 10 type Base struct { 11 conn *zk.Conn // zk的客户端连接 12 } 13 14 func NewClientZk(eps *config.EndPoints, serviceNode config.Node, timeout int) (*zk.Conn, error) { 15 // 连接服务器 16 conn, _, err := zk.Connect(eps.Servers.Array(), time.Duration(timeout)*time.Second) 17 if err != nil { 18 return nil, err 19 } 20 // 创建服务根节点 21 exists, _, err := conn.Exists(serviceNode.Root()) 22 if err != nil { 23 conn.Close() 24 return nil, err 25 } 26 if exists { 27 return conn, nil 28 } 29 _, err = conn.Create(serviceNode.Root(), []byte(""), 0, zk.WorldACL(zk.PermAll)) 30 if err != nil && err != zk.ErrNodeExists { 31 conn.Close() 32 return nil, err 33 } 34 return conn, nil 35 } 36 37 // Set interface 38 func (base *Base) Set(data service.Data) error { 39 40 return nil 41 } 42 43 // Get interface 44 func (base *Base) Get(key service.Key) ([]*service.Data, error) { 45 46 return nil, nil 47 }