This is an automated email from the ASF dual-hosted git repository.

alexstocks pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/dubbo-go-pixiu.git


The following commit(s) were added to refs/heads/develop by this push:
     new c7b0e892 fix: nacos support namespace && group
     new a47afd31 Merge pull request #438 from MasterKenway/fix/nacos-group
c7b0e892 is described below

commit c7b0e892ac31276e751c699eb927c50bc9e5312f
Author: MasterKenway <[email protected]>
AuthorDate: Sat Jun 4 23:52:44 2022 +0800

    fix: nacos support namespace && group
---
 .../dubboregistry/registry/nacos/interface_listener.go    |  9 ++++++---
 pkg/adapter/dubboregistry/registry/nacos/registry.go      |  8 ++++++++
 pkg/client/dubbo/dubbo.go                                 | 12 +++++++-----
 pkg/model/cluster.go                                      | 15 ++++++++++-----
 samples/dubbogo/simple/nacos/pixiu/conf.yaml              |  8 +++++++-
 .../dubbogo/simple/nacos/server/profiles/dev/server.yml   |  4 ++++
 6 files changed, 42 insertions(+), 14 deletions(-)

diff --git a/pkg/adapter/dubboregistry/registry/nacos/interface_listener.go 
b/pkg/adapter/dubboregistry/registry/nacos/interface_listener.go
index a1a2de67..fa90a8f1 100644
--- a/pkg/adapter/dubboregistry/registry/nacos/interface_listener.go
+++ b/pkg/adapter/dubboregistry/registry/nacos/interface_listener.go
@@ -32,7 +32,6 @@ import (
        dubboRegistry "dubbo.apache.org/dubbo-go/v3/registry"
 
        "github.com/nacos-group/nacos-sdk-go/clients/naming_client"
-       nacosConstant "github.com/nacos-group/nacos-sdk-go/common/constant"
        "github.com/nacos-group/nacos-sdk-go/vo"
 )
 
@@ -83,6 +82,8 @@ func (z *nacosIntfListener) WatchAndHandle() {
        z.dubbogoNacosRegistry, err = dubboConfig.NewRegistryConfigBuilder().
                SetProtocol("nacos").
                SetAddress(z.addr).
+               SetGroup(z.reg.Group).
+               SetNamespace(z.reg.Namespace).
                Build().GetInstance(dubboCommon.CONSUMER)
        if err != nil {
                logger.Errorf("create nacos registry with address = %s error = 
%s", z.addr, err)
@@ -101,7 +102,9 @@ func (z *nacosIntfListener) watch() {
        defer delayTimer.Stop()
        for {
                serviceList, err := 
z.client.GetAllServicesInfo(vo.GetAllServiceInfoParam{
-                       PageSize: 100,
+                       GroupName: z.reg.Group,
+                       NameSpace: z.reg.Namespace,
+                       PageSize:  100,
                })
                // error handling
                if err != nil {
@@ -182,7 +185,7 @@ func (z *nacosIntfListener) updateServiceList(serviceList 
[]string) error {
                                sub := &vo.SubscribeParam{
                                        ServiceName:       
getSubscribeName(url),
                                        SubscribeCallback: l.Callback,
-                                       GroupName:         
nacosConstant.DEFAULT_GROUP,
+                                       GroupName:         z.reg.Group,
                                }
 
                                if err := z.client.Subscribe(sub); err != nil {
diff --git a/pkg/adapter/dubboregistry/registry/nacos/registry.go 
b/pkg/adapter/dubboregistry/registry/nacos/registry.go
index 69fdf984..981ada4b 100644
--- a/pkg/adapter/dubboregistry/registry/nacos/registry.go
+++ b/pkg/adapter/dubboregistry/registry/nacos/registry.go
@@ -44,6 +44,9 @@ func init() {
 }
 
 type NacosRegistry struct {
+       Group     string
+       Namespace string
+
        *baseRegistry.BaseRegistry
        nacosListeners map[registry.RegisteredType]registry.Listener
        client         naming_client.INamingClient
@@ -76,13 +79,18 @@ func newNacosRegistry(regConfig model.Registry, 
adapterListener common.RegistryE
        scs := []nacosConstant.ServerConfig{
                *nacosConstant.NewServerConfig(addrAndIP[0], uint64(port)),
        }
+       ccs := 
nacosConstant.NewClientConfig(nacosConstant.WithNamespaceId(regConfig.Namespace))
        client, err := clients.NewNamingClient(vo.NacosClientParam{
                ServerConfigs: scs,
+               ClientConfig:  ccs,
        })
        if err != nil {
                return nil, err
        }
+
        nacosRegistry := &NacosRegistry{
+               Group:          regConfig.Group,
+               Namespace:      regConfig.Namespace,
                client:         client,
                nacosListeners: 
make(map[registry.RegisteredType]registry.Listener),
        }
diff --git a/pkg/client/dubbo/dubbo.go b/pkg/client/dubbo/dubbo.go
index cc3925ab..e2a9774d 100644
--- a/pkg/client/dubbo/dubbo.go
+++ b/pkg/client/dubbo/dubbo.go
@@ -137,11 +137,13 @@ func (dc *Client) Apply() error {
                        v.Protocol = defaultDubboProtocol
                }
                rootConfigBuilder.AddRegistry(k, &dg.RegistryConfig{
-                       Protocol: v.Protocol,
-                       Address:  v.Address,
-                       Timeout:  v.Timeout,
-                       Username: v.Username,
-                       Password: v.Password,
+                       Protocol:  v.Protocol,
+                       Address:   v.Address,
+                       Timeout:   v.Timeout,
+                       Username:  v.Username,
+                       Password:  v.Password,
+                       Namespace: v.Namespace,
+                       Group:     v.Group,
                })
        }
        rootConfigBuilder.SetApplication(defaultApplication)
diff --git a/pkg/model/cluster.go b/pkg/model/cluster.go
index 0d83eff3..48416b30 100644
--- a/pkg/model/cluster.go
+++ b/pkg/model/cluster.go
@@ -65,12 +65,17 @@ type (
        }
 
        // Registry remote registry where dubbo apis are registered.
+       // Here comes a problem, dubbo protocol proxy does not use the same 
registry as pixiu,
+       // so any modification to the config, should apply to both 
`pkg/client/dubbo/dubbo.go`
+       // and `pkg\adapter\dubboregistry\registry`
        Registry struct {
-               Protocol string `default:"zookeeper" yaml:"protocol" 
json:"protocol"`
-               Timeout  string `yaml:"timeout" json:"timeout"`
-               Address  string `yaml:"address" json:"address"`
-               Username string `yaml:"username" json:"username"`
-               Password string `yaml:"password" json:"password"`
+               Protocol  string `default:"zookeeper" yaml:"protocol" 
json:"protocol"`
+               Timeout   string `yaml:"timeout" json:"timeout"`
+               Address   string `yaml:"address" json:"address"`
+               Username  string `yaml:"username" json:"username"`
+               Password  string `yaml:"password" json:"password"`
+               Group     string `default:"DEFAULT_GROUP"  yaml:"group" 
json:"group"`
+               Namespace string `yaml:"namespace" json:"namespace"`
        }
 
        // DiscoveryType
diff --git a/samples/dubbogo/simple/nacos/pixiu/conf.yaml 
b/samples/dubbogo/simple/nacos/pixiu/conf.yaml
index 9c03d4eb..e5c74f40 100644
--- a/samples/dubbogo/simple/nacos/pixiu/conf.yaml
+++ b/samples/dubbogo/simple/nacos/pixiu/conf.yaml
@@ -48,6 +48,8 @@ static_resources:
                             address: "127.0.0.1:8848"
                             username: ""
                             password: ""
+                            group: test-group
+                            namespace: 3f327741-31ec-43f8-bb4c-e63c44e17b81
   adapters:
     - id: test
       name: dgp.adapter.dubboregistrycenter
@@ -56,4 +58,8 @@ static_resources:
           "nacos":
             protocol: nacos
             address: "127.0.0.1:8848"
-            timeout: "5s"
\ No newline at end of file
+            timeout: "5s"
+            username: ""
+            password: ""
+            group: test-group
+            namespace: 3f327741-31ec-43f8-bb4c-e63c44e17b81
\ No newline at end of file
diff --git a/samples/dubbogo/simple/nacos/server/profiles/dev/server.yml 
b/samples/dubbogo/simple/nacos/server/profiles/dev/server.yml
index f2e5e447..33659f1c 100644
--- a/samples/dubbogo/simple/nacos/server/profiles/dev/server.yml
+++ b/samples/dubbogo/simple/nacos/server/profiles/dev/server.yml
@@ -26,6 +26,10 @@ dubbo:
       protocol: nacos
       timeout: 3s
       address: 127.0.0.1:8848
+      username: nacos
+      password: nacos
+      group: test-group
+      namespace: 3f327741-31ec-43f8-bb4c-e63c44e17b81
   protocols:
     dubbo:
       name: dubbo

Reply via email to