From facab2ba9600005bc3ed977c6a66f554ded8f339 Mon Sep 17 00:00:00 2001 From: flycash <mingflycash@gmail.com> Date: Mon, 22 Jun 2020 21:57:41 +0800 Subject: [PATCH] Fix Etcd BUG --- common/extension/service_discovery.go | 2 +- metadata/report/etcd/report.go | 2 +- registry/etcdv3/service_discovery.go | 9 +++++++-- remoting/etcdv3/client.go | 2 +- 4 files changed, 10 insertions(+), 5 deletions(-) diff --git a/common/extension/service_discovery.go b/common/extension/service_discovery.go index 456b14c83..0227920dc 100644 --- a/common/extension/service_discovery.go +++ b/common/extension/service_discovery.go @@ -42,7 +42,7 @@ func SetServiceDiscovery(protocol string, creator func(name string) (registry.Se func GetServiceDiscovery(protocol string, name string) (registry.ServiceDiscovery, error) { creator, ok := discoveryCreatorMap[protocol] if !ok { - return nil, perrors.New("Could not find the service discovery with name: " + name) + return nil, perrors.New("Could not find the service discovery with discovery protocol: " + protocol) } return creator(name) } diff --git a/metadata/report/etcd/report.go b/metadata/report/etcd/report.go index 0d49ff178..9db0b577b 100644 --- a/metadata/report/etcd/report.go +++ b/metadata/report/etcd/report.go @@ -41,7 +41,7 @@ import ( const DEFAULT_ROOT = "dubbo" func init() { - extension.SetMetadataReportFactory("etcd", func() factory.MetadataReportFactory { + extension.SetMetadataReportFactory(constant.ETCDV3_KEY, func() factory.MetadataReportFactory { return &etcdMetadataReportFactory{} }) } diff --git a/registry/etcdv3/service_discovery.go b/registry/etcdv3/service_discovery.go index f47d5324c..e435a556e 100644 --- a/registry/etcdv3/service_discovery.go +++ b/registry/etcdv3/service_discovery.go @@ -89,8 +89,13 @@ func (e *etcdV3ServiceDiscovery) Register(instance registry.ServiceInstance) err if nil != e.client { ins, err := jsonutil.EncodeJSON(instance) if err == nil { - e.client.Create(path, string(ins)) - e.services.Add(instance.GetServiceName()) + err = e.client.Update(path, string(ins)) + if err != nil { + logger.Errorf("cannot register the instance: %s", string(ins), err) + } else { + e.services.Add(instance.GetServiceName()) + } + } } diff --git a/remoting/etcdv3/client.go b/remoting/etcdv3/client.go index 93da6402c..a24a69232 100644 --- a/remoting/etcdv3/client.go +++ b/remoting/etcdv3/client.go @@ -144,7 +144,7 @@ func NewServiceDiscoveryClient(opts ...Option) *Client { newClient, err := NewClient(options.name, options.endpoints, options.timeout, options.heartbeat) if err != nil { - logger.Warnf("new etcd client (name{%s}, etcd addresses{%v}, timeout{%d}) = error{%v}", + logger.Errorf("new etcd client (name{%s}, etcd addresses{%v}, timeout{%d}) = error{%v}", options.name, options.endpoints, options.timeout, err) return nil } -- GitLab