wenxuwan commented on a change in pull request #1479:
URL: https://github.com/apache/dubbo-go/pull/1479#discussion_r714465746



##########
File path: config_center/nacos/client.go
##########
@@ -18,173 +18,63 @@
 package nacos
 
 import (
-       "strconv"
-       "strings"
        "sync"
        "time"
 )
 
 import (
-       "github.com/nacos-group/nacos-sdk-go/clients"
-       "github.com/nacos-group/nacos-sdk-go/clients/config_client"
-       nacosconst "github.com/nacos-group/nacos-sdk-go/common/constant"
+       nacosClient "github.com/dubbogo/gost/database/kv/nacos"
        perrors "github.com/pkg/errors"
 )
 
 import (
-       "github.com/apache/dubbo-go/common"
-       "github.com/apache/dubbo-go/common/constant"
        "github.com/apache/dubbo-go/common/logger"
+       "github.com/apache/dubbo-go/remoting/nacos"
 )
 
-// NacosClient Nacos client
+// NacosClient Nacos configClient
 type NacosClient struct {
-       name       string
-       NacosAddrs []string
-       sync.Mutex // for Client
-       client     *config_client.IConfigClient
-       exit       chan struct{}
-       Timeout    time.Duration
-       once       sync.Once
-       onceClose  func()
+       name         string
+       NacosAddrs   []string
+       sync.Mutex   // for Client
+       configClient *nacosClient.NacosConfigClient
+       exit         chan struct{}
+       Timeout      time.Duration
+       once         sync.Once
+       onceClose    func()
 }
 
 // Client Get Client
-func (n *NacosClient) Client() *config_client.IConfigClient {
-       return n.client
+func (n *NacosClient) Client() *nacosClient.NacosConfigClient {
+       return n.configClient
 }
 
-// SetClient Set client
-func (n *NacosClient) SetClient(client *config_client.IConfigClient) {
+// SetClient Set configClient
+func (n *NacosClient) SetClient(configClient *nacosClient.NacosConfigClient) {
        n.Lock()
-       n.client = client
+       n.configClient = configClient
        n.Unlock()
 }
 
-type option func(*options)
-
-type options struct {
-       nacosName string
-       //client    *NacosClient
-}
-
-// WithNacosName Set nacos name
-func WithNacosName(name string) option {
-       return func(opt *options) {
-               opt.nacosName = name
-       }
-}
-
-// ValidateNacosClient Validate nacos client , if null then create it
-func ValidateNacosClient(container nacosClientFacade, opts ...option) error {
+// ValidateNacosClient Validate nacos configClient , if null then create it
+func ValidateNacosClient(container nacosClientFacade) error {
        if container == nil {
                return perrors.Errorf("container can not be null")
        }
-       os := &options{}
-       for _, opt := range opts {
-               opt(os)
-       }
-
        url := container.GetURL()
-       timeout, err := 
time.ParseDuration(url.GetParam(constant.CONFIG_TIMEOUT_KEY, 
constant.DEFAULT_REG_TIMEOUT))
-       if err != nil {
-               logger.Errorf("invalid timeout config %+v,got err %+v",
-                       url.GetParam(constant.CONFIG_TIMEOUT_KEY, 
constant.DEFAULT_REG_TIMEOUT), err)
-               return perrors.WithMessagef(err, "newNacosClient(address:%+v)", 
url.Location)
-       }
-       nacosAddresses := strings.Split(url.Location, ",")
-       if container.NacosClient() == nil {
-               //in dubbo ,every registry only connect one node ,so this is 
[]string{r.Address}
-               newClient, err := newNacosClient(os.nacosName, nacosAddresses, 
timeout, url)
+       if container.NacosClient() == nil || container.NacosClient().Client() 
== nil {
+               // in dubbo ,every registry only connect one node ,so this is 
[]string{r.Address}
+               newClient, err := nacos.NewNacosConfigClientByUrl(url)
                if err != nil {
-                       logger.Errorf("newNacosClient(name{%s}, nacos 
address{%v}, timeout{%d}) = error{%v}",
-                               os.nacosName, url.Location, timeout.String(), 
err)
+                       logger.Errorf("ValidateNacosClient(name{%s}, nacos 
address{%v} = error{%v}", url.Location, err)
                        return perrors.WithMessagef(err, 
"newNacosClient(address:%+v)", url.Location)
                }
                container.SetNacosClient(newClient)
        }
-
-       if container.NacosClient().Client() == nil {
-               configClient, err := initNacosConfigClient(nacosAddresses, 
timeout, url)
-               if err != nil {
-                       
logger.Errorf("initNacosConfigClient(addr:%+v,timeout:%v,url:%v) = err %+v",
-                               nacosAddresses, timeout.String(), url, err)
-                       return perrors.WithMessagef(err, 
"newNacosClient(address:%+v)", url.Location)
-               }
-               container.NacosClient().SetClient(&configClient)
-
-       }
-
        return perrors.WithMessagef(nil, "newNacosClient(address:%+v)", 
url.PrimitiveURL)

Review comment:
       perrors.WithMessagef 
这个函数的实现你可以看一下,本身就会判断err是不是nil,是nil的话直接返回了nil,这里直接返回nil,没必要再包一层,看着跟返回了一个errror一样




-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to