From 5aaee6d792224e160ef4da2e0f003a7273dc314a Mon Sep 17 00:00:00 2001 From: zhengxianle <zhengxianle@gmail.com> Date: Tue, 23 Jun 2020 00:26:34 +0800 Subject: [PATCH] Fix: EtcdServiceDiscovery replace put with temp kv. --- registry/etcdv3/service_discovery.go | 5 ++--- remoting/etcdv3/client.go | 11 ++++------- remoting/etcdv3/client_test.go | 2 +- 3 files changed, 7 insertions(+), 11 deletions(-) diff --git a/registry/etcdv3/service_discovery.go b/registry/etcdv3/service_discovery.go index e435a556e..5699f1c42 100644 --- a/registry/etcdv3/service_discovery.go +++ b/registry/etcdv3/service_discovery.go @@ -89,13 +89,12 @@ func (e *etcdV3ServiceDiscovery) Register(instance registry.ServiceInstance) err if nil != e.client { ins, err := jsonutil.EncodeJSON(instance) if err == nil { - err = e.client.Update(path, string(ins)) + err = e.client.RegisterTemp(path, string(ins)) if err != nil { logger.Errorf("cannot register the instance: %s", string(ins), err) } else { e.services.Add(instance.GetServiceName()) } - } } @@ -109,7 +108,7 @@ func (e *etcdV3ServiceDiscovery) Update(instance registry.ServiceInstance) error if nil != e.client { ins, err := jsonutil.EncodeJSON(instance) if nil == err { - e.client.Update(path, string(ins)) + e.client.RegisterTemp(path, string(ins)) e.services.Add(instance.GetServiceName()) } } diff --git a/remoting/etcdv3/client.go b/remoting/etcdv3/client.go index a24a69232..080c94114 100644 --- a/remoting/etcdv3/client.go +++ b/remoting/etcdv3/client.go @@ -19,7 +19,6 @@ package etcdv3 import ( "context" - "path" "sync" "time" ) @@ -520,16 +519,14 @@ func (c *Client) Delete(k string) error { } // RegisterTemp registers a temporary node -func (c *Client) RegisterTemp(basePath string, node string) (string, error) { +func (c *Client) RegisterTemp(k, v string) error { - completeKey := path.Join(basePath, node) - - err := c.keepAliveKV(completeKey, "") + err := c.keepAliveKV(k, v) if err != nil { - return "", perrors.WithMessagef(err, "keepalive kv (key %s)", completeKey) + return perrors.WithMessagef(err, "keepalive kv (key %s)", k) } - return completeKey, nil + return nil } // GetChildrenKVList gets children kv list by @k diff --git a/remoting/etcdv3/client_test.go b/remoting/etcdv3/client_test.go index 287d93e30..a321eea9e 100644 --- a/remoting/etcdv3/client_test.go +++ b/remoting/etcdv3/client_test.go @@ -384,7 +384,7 @@ func (suite *ClientTestSuite) TestClientRegisterTemp() { assert.Contains(t, events, eDelete) }() - _, err := c.RegisterTemp("scott", "wang") + err := c.RegisterTemp("scott/wang", "test") if err != nil { t.Fatal(err) } -- GitLab