|
|
|
@ -2,15 +2,19 @@ package client
|
|
|
|
|
|
|
|
|
|
import ( |
|
|
|
|
"git.gz.internal.jumaiyx.cn/jm/jmproto/conf" |
|
|
|
|
"git.gz.internal.jumaiyx.cn/pkg/go-etcd" |
|
|
|
|
"github.com/go-kratos/kratos/v2/config" |
|
|
|
|
"github.com/go-kratos/kratos/v2/log" |
|
|
|
|
"github.com/pkg/errors" |
|
|
|
|
clientv3 "go.etcd.io/etcd/client/v3" |
|
|
|
|
"strings" |
|
|
|
|
"sync" |
|
|
|
|
"time" |
|
|
|
|
) |
|
|
|
|
|
|
|
|
|
var ( |
|
|
|
|
HostNullError = errors.New("host empty is not allowed") |
|
|
|
|
DialFailed = errors.New("dial fail") |
|
|
|
|
) |
|
|
|
|
var ( |
|
|
|
|
clinet *clientv3.Client |
|
|
|
|
mux sync.Mutex |
|
|
|
@ -36,7 +40,7 @@ func Client(c clientv3.Config) (*clientv3.Client, error) {
|
|
|
|
|
log.Infof("etcd host:%v username: %s password:%s timeout:%d", c.Endpoints, c.Username, c.Password, c.DialTimeout) |
|
|
|
|
client, err := clientv3.New(c) |
|
|
|
|
if err != nil { |
|
|
|
|
log.Error(go_etcd.DialFailed) |
|
|
|
|
log.Error(DialFailed) |
|
|
|
|
return nil, err |
|
|
|
|
} |
|
|
|
|
return client, nil |
|
|
|
@ -45,7 +49,7 @@ func Client(c clientv3.Config) (*clientv3.Client, error) {
|
|
|
|
|
func Conf(bc *conf.Etcd) (*clientv3.Config, error) { |
|
|
|
|
if bc.Host == "" { |
|
|
|
|
log.Warn("host empty is not allowed") |
|
|
|
|
return nil, go_etcd.HostNullError |
|
|
|
|
return nil, HostNullError |
|
|
|
|
} |
|
|
|
|
cli := &clientv3.Config{ |
|
|
|
|
Endpoints: strings.Split(bc.Host, ","), |
|
|
|
|