You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@dubbo.apache.org by jo...@apache.org on 2021/09/22 10:08:35 UTC

[dubbo-go-samples] branch config-enhance updated: Fix: config enhance (service discovery) (#255)

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

joezou pushed a commit to branch config-enhance
in repository https://gitbox.apache.org/repos/asf/dubbo-go-samples.git


The following commit(s) were added to refs/heads/config-enhance by this push:
     new 9d5d56e  Fix: config enhance (service discovery) (#255)
9d5d56e is described below

commit 9d5d56ef7944f04f2d6348487c54e5659009ed8e
Author: MasterKenway <40...@users.noreply.github.com>
AuthorDate: Wed Sep 22 18:08:27 2021 +0800

    Fix: config enhance (service discovery) (#255)
    
    * fix: service-discovery/etcd fit config enhance
    
    * fix: service-discovery/nacos fit config enhance
---
 .../etcd/docker/docker-compose.yml                 | 26 +++++++
 .../servicediscovery/etcd/go-client/cmd/client.go  | 17 +----
 .../etcd/go-client/conf/dubbogo.yaml               | 40 +++++++++++
 .../go-server => etcd/go-client}/conf/log.yml      |  0
 .../servicediscovery/etcd/go-client/pkg/user.go    |  2 +-
 .../etcd/go-client/profiles/dev/client.yml         | 75 --------------------
 .../etcd/go-client/profiles/dev/log.yml            | 27 --------
 .../servicediscovery/etcd/go-server/cmd/server.go  | 12 +---
 .../etcd/go-server/conf/dubbogo.yaml               | 47 +++++++++++++
 .../go-client => etcd/go-server}/conf/log.yml      |  0
 .../etcd/go-server/profiles/dev/client.yml         | 75 --------------------
 .../etcd/go-server/profiles/dev/log.yml            | 27 --------
 .../etcd/go-server/profiles/dev/server.yml         | 73 --------------------
 .../{go-server => }/docker/docker-compose.yml      |  9 ++-
 .../{go-server => }/docker/docker-health-check.sh  |  0
 .../servicediscovery/nacos/go-client/cmd/client.go | 17 +----
 .../nacos/go-client/conf/client.yml                | 79 ----------------------
 .../nacos/go-client/conf/dubbogo.yaml              | 41 +++++++++++
 .../servicediscovery/nacos/go-client/pkg/user.go   |  2 +-
 .../servicediscovery/nacos/go-server/cmd/server.go | 13 +---
 .../nacos/go-server/conf/client.yml                | 79 ----------------------
 .../nacos/go-server/conf/dubbogo.yaml              | 40 +++++++++++
 .../nacos/go-server/conf/server.yml                | 77 ---------------------
 .../servicediscovery/nacos/go-server/pkg/user.go   |  2 +-
 24 files changed, 213 insertions(+), 567 deletions(-)

diff --git a/registry/servicediscovery/etcd/docker/docker-compose.yml b/registry/servicediscovery/etcd/docker/docker-compose.yml
new file mode 100644
index 0000000..e12e1f2
--- /dev/null
+++ b/registry/servicediscovery/etcd/docker/docker-compose.yml
@@ -0,0 +1,26 @@
+version: "3.8"
+
+services:
+  zk:
+    container_name: zk
+    image: zookeeper:3.5
+    ports:
+      - "52181:2181"
+    restart: on-failure
+
+  etcdv3:
+    container_name: etcd
+    image: quay.io/coreos/etcd:v3.4.15
+    command:
+      - '/usr/local/bin/etcd'
+      - '-name=etcd'
+      - '-initial-advertise-peer-urls=http://127.0.0.1:2380'
+      - '-listen-peer-urls=http://0.0.0.0:2380'
+      - '-listen-client-urls=http://0.0.0.0:2379'
+      - '-advertise-client-urls=http://127.0.0.1:2379'
+      - '-heartbeat-interval=250'
+      - '-election-timeout=1250'
+      - '-initial-cluster=etcd=http://127.0.0.1:2380'
+      - '-initial-cluster-state=new'
+    ports:
+      - "52379:2379"
diff --git a/registry/servicediscovery/etcd/go-client/cmd/client.go b/registry/servicediscovery/etcd/go-client/cmd/client.go
index 866126c..676000d 100644
--- a/registry/servicediscovery/etcd/go-client/cmd/client.go
+++ b/registry/servicediscovery/etcd/go-client/cmd/client.go
@@ -24,19 +24,9 @@ import (
 )
 
 import (
-	_ "dubbo.apache.org/dubbo-go/v3/cluster/cluster_impl"
-	_ "dubbo.apache.org/dubbo-go/v3/cluster/loadbalance"
 	_ "dubbo.apache.org/dubbo-go/v3/common/proxy/proxy_factory"
 	"dubbo.apache.org/dubbo-go/v3/config"
-	_ "dubbo.apache.org/dubbo-go/v3/filter/filter_impl"
-	_ "dubbo.apache.org/dubbo-go/v3/metadata/mapping/memory"
-	_ "dubbo.apache.org/dubbo-go/v3/metadata/report/etcd"
-	_ "dubbo.apache.org/dubbo-go/v3/metadata/service/local"
-	_ "dubbo.apache.org/dubbo-go/v3/metadata/service/remote"
-	_ "dubbo.apache.org/dubbo-go/v3/protocol/dubbo"
-	_ "dubbo.apache.org/dubbo-go/v3/registry/etcdv3"
-	_ "dubbo.apache.org/dubbo-go/v3/registry/protocol"
-	_ "dubbo.apache.org/dubbo-go/v3/registry/servicediscovery"
+	_ "dubbo.apache.org/dubbo-go/v3/imports"
 
 	hessian "github.com/apache/dubbo-go-hessian2"
 
@@ -54,7 +44,7 @@ func init() {
 	hessian.RegisterPOJO(&pkg.User{})
 }
 
-// need to setup environment variable "CONF_CONSUMER_FILE_PATH" to "conf/client.yml" before run
+// export DUBBO_GO_CONFIG_PATH= $PATH_TO_SAMPLES/registry/servicediscovery/go-client/conf/dubbogo.yml
 func main() {
 	hessian.RegisterPOJO(&pkg.User{})
 	config.Load()
@@ -62,8 +52,7 @@ func main() {
 
 	gxlog.CInfo("\n\n\nstart to test dubbo")
 	for i := 0; i < 123; i++ {
-		user := &pkg.User{}
-		err := userProvider.GetUser(context.TODO(), []interface{}{"A001"}, user)
+		user, err := userProvider.GetUser(context.TODO(), []interface{}{"A001"})
 		if err != nil {
 			gxlog.CError("error: %v\n", err)
 			os.Exit(1)
diff --git a/registry/servicediscovery/etcd/go-client/conf/dubbogo.yaml b/registry/servicediscovery/etcd/go-client/conf/dubbogo.yaml
new file mode 100644
index 0000000..441cf5d
--- /dev/null
+++ b/registry/servicediscovery/etcd/go-client/conf/dubbogo.yaml
@@ -0,0 +1,40 @@
+dubbo:
+  application:
+    metadata-type: remote
+
+  config-center:
+    protocol: "zookeeper"
+    address: "127.0.0.1:52181"
+
+  registries:
+    demoSD:
+      protocol: "etcdv3"
+      address: "127.0.0.1:52379"
+      registry-type: "service"
+      params:
+        service_discovery: "etcdv3SD"
+        name_mapping: "in-memory"
+        metadata: "default"
+
+  metadata-report:
+    protocol: "etcdv3"
+    address: "127.0.0.1:52379"
+    timeout: "10s"
+
+  service-discovery:
+    "etcdv3SD":
+      protocol: "etcdv3"
+
+  consumer:
+    registry:
+      - demoSD
+    references:
+      "UserProvider":
+        registry: "demoSD"
+        provided_by: "dubbo.io"
+        protocol: "dubbo"
+        interface: "org.apache.dubbo.UserProvider"
+        cluster: "failover"
+        methods:
+          - name: "GetUser"
+            retries: 3
\ No newline at end of file
diff --git a/registry/servicediscovery/nacos/go-server/conf/log.yml b/registry/servicediscovery/etcd/go-client/conf/log.yml
similarity index 100%
rename from registry/servicediscovery/nacos/go-server/conf/log.yml
rename to registry/servicediscovery/etcd/go-client/conf/log.yml
diff --git a/registry/servicediscovery/etcd/go-client/pkg/user.go b/registry/servicediscovery/etcd/go-client/pkg/user.go
index 7733ea4..e9a38ad 100644
--- a/registry/servicediscovery/etcd/go-client/pkg/user.go
+++ b/registry/servicediscovery/etcd/go-client/pkg/user.go
@@ -30,7 +30,7 @@ type User struct {
 }
 
 type UserProvider struct {
-	GetUser func(ctx context.Context, req []interface{}, rsp *User) error
+	GetUser func(ctx context.Context, req []interface{}) (*User, error)
 }
 
 func (u *UserProvider) Reference() string {
diff --git a/registry/servicediscovery/etcd/go-client/profiles/dev/client.yml b/registry/servicediscovery/etcd/go-client/profiles/dev/client.yml
deleted file mode 100644
index 0640ac2..0000000
--- a/registry/servicediscovery/etcd/go-client/profiles/dev/client.yml
+++ /dev/null
@@ -1,75 +0,0 @@
-# dubbo client yaml configure file
-
-check: true
-# client
-request_timeout: "3s"
-# connect timeout
-connect_timeout: "3s"
-
-# application config
-application:
-  organization: "dubbo.io"
-  name: "UserInfoTest"
-  module: "dubbo-go user-info client"
-  version: "0.0.1"
-  environment: "dev"
-
-# registry config
-registries:
-  "demoServiceDiscovery":
-    protocol: "service-discovery"
-    params:
-      service_discovery: "etcdv3"
-      name_mapping: "in-memory"
-      metadata: "default"
-
-metadata_report:
-  protocol: "etcdv3"
-  remote_ref: "etcd"
-
-service_discovery:
-  etcdv3:
-    protocol: "etcdv3"
-    remote_ref: "etcd"
-    group: "dubbo"
-
-remote:
-  etcd:
-    address: "127.0.0.1:2379"
-    timeout: "5s"
-
-# reference config
-references:
-  "UserProvider":
-    registry: "demoServiceDiscovery"
-    provided_by: "UserInfoServer"
-    protocol: "dubbo"
-    interface: "org.apache.dubbo.UserProvider"
-    cluster: "failover"
-    methods:
-      - name: "GetUser"
-        retries: 3
-
-# protocol config
-protocol_conf:
-  dubbo:
-    reconnect_interval: 0
-    connection_number: 1
-    heartbeat_period: "5s"
-    session_timeout: "180s"
-    pool_size: 64
-    pool_ttl: 600
-    getty_session_param:
-      compress_encoding: false
-      tcp_no_delay: true
-      tcp_keep_alive: true
-      keep_alive_period: "120s"
-      tcp_r_buf_size: 262144
-      tcp_w_buf_size: 65536
-      pkg_rq_size: 1024
-      pkg_wq_size: 512
-      tcp_read_timeout: "1s"
-      tcp_write_timeout: "5s"
-      wait_timeout: "1s"
-      max_msg_len: 1024000
-      session_name: "client"
diff --git a/registry/servicediscovery/etcd/go-client/profiles/dev/log.yml b/registry/servicediscovery/etcd/go-client/profiles/dev/log.yml
deleted file mode 100644
index 2b6e93a..0000000
--- a/registry/servicediscovery/etcd/go-client/profiles/dev/log.yml
+++ /dev/null
@@ -1,27 +0,0 @@
-level: "debug"
-development: true
-disableCaller: false
-disableStacktrace: false
-sampling:
-encoding: "console"
-
-# encoder
-encoderConfig:
-  messageKey: "message"
-  levelKey: "level"
-  timeKey: "time"
-  nameKey: "logger"
-  callerKey: "caller"
-  stacktraceKey: "stacktrace"
-  lineEnding: ""
-  levelEncoder: "capital"
-  timeEncoder: "iso8601"
-  durationEncoder: "seconds"
-  callerEncoder: "short"
-  nameEncoder: ""
-
-outputPaths:
-  - "stderr"
-errorOutputPaths:
-  - "stderr"
-initialFields:
diff --git a/registry/servicediscovery/etcd/go-server/cmd/server.go b/registry/servicediscovery/etcd/go-server/cmd/server.go
index b32906c..2da7e03 100644
--- a/registry/servicediscovery/etcd/go-server/cmd/server.go
+++ b/registry/servicediscovery/etcd/go-server/cmd/server.go
@@ -26,20 +26,10 @@ import (
 )
 
 import (
-	_ "dubbo.apache.org/dubbo-go/v3/cluster/cluster_impl"
-	_ "dubbo.apache.org/dubbo-go/v3/cluster/loadbalance"
 	"dubbo.apache.org/dubbo-go/v3/common/logger"
 	_ "dubbo.apache.org/dubbo-go/v3/common/proxy/proxy_factory"
 	"dubbo.apache.org/dubbo-go/v3/config"
-	_ "dubbo.apache.org/dubbo-go/v3/filter/filter_impl"
-	_ "dubbo.apache.org/dubbo-go/v3/metadata/mapping/memory"
-	_ "dubbo.apache.org/dubbo-go/v3/metadata/report/etcd"
-	_ "dubbo.apache.org/dubbo-go/v3/metadata/service/remote"
-	_ "dubbo.apache.org/dubbo-go/v3/protocol/dubbo"
-	_ "dubbo.apache.org/dubbo-go/v3/protocol/jsonrpc"
-	_ "dubbo.apache.org/dubbo-go/v3/registry/etcdv3"
-	_ "dubbo.apache.org/dubbo-go/v3/registry/protocol"
-	_ "dubbo.apache.org/dubbo-go/v3/registry/servicediscovery"
+	_ "dubbo.apache.org/dubbo-go/v3/imports"
 
 	hessian "github.com/apache/dubbo-go-hessian2"
 )
diff --git a/registry/servicediscovery/etcd/go-server/conf/dubbogo.yaml b/registry/servicediscovery/etcd/go-server/conf/dubbogo.yaml
new file mode 100644
index 0000000..662cc9d
--- /dev/null
+++ b/registry/servicediscovery/etcd/go-server/conf/dubbogo.yaml
@@ -0,0 +1,47 @@
+dubbo:
+  application:
+    metadata-type: remote
+
+  config-center:
+    protocol: "zookeeper"
+    address: "127.0.0.1:52181"
+
+  registries:
+    demoSD:
+      protocol: "etcdv3"
+      address: "127.0.0.1:52379"
+      registry-type: "service"
+      params:
+        service_discovery: "etcdv3SD"
+        name_mapping: "dynamic"
+        metadata: "default"
+
+  metadata-report:
+    protocol: "etcdv3"
+    address: "127.0.0.1:52379"
+    timeout: "10s"
+
+  service-discovery:
+    "etcdv3SD":
+      protocol: "etcdv3"
+
+  protocols:
+    "dubbo":
+      name: "dubbo"
+      port: 55000
+
+  provider:
+    registry:
+      - demoSD
+    services:
+      "UserProvider":
+        registry: "demoSD"
+        protocol: "dubbo"
+        interface: "org.apache.dubbo.UserProvider"
+        loadbalance: "random"
+        warmup: "100"
+        cluster: "failover"
+        methods:
+          - name: "GetUser"
+            retries: 1
+            loadbalance: "random"
\ No newline at end of file
diff --git a/registry/servicediscovery/nacos/go-client/conf/log.yml b/registry/servicediscovery/etcd/go-server/conf/log.yml
similarity index 100%
rename from registry/servicediscovery/nacos/go-client/conf/log.yml
rename to registry/servicediscovery/etcd/go-server/conf/log.yml
diff --git a/registry/servicediscovery/etcd/go-server/profiles/dev/client.yml b/registry/servicediscovery/etcd/go-server/profiles/dev/client.yml
deleted file mode 100644
index bcb7043..0000000
--- a/registry/servicediscovery/etcd/go-server/profiles/dev/client.yml
+++ /dev/null
@@ -1,75 +0,0 @@
-# dubbo client yaml configure file
-
-check: true
-# client
-request_timeout: "3s"
-# connect timeout
-connect_timeout: "3s"
-
-# application config
-application:
-  organization: "dubbo.io"
-  name: "UserInfoTest"
-  module: "dubbo-go user-info client"
-  version: "0.0.1"
-  environment: "dev"
-
-# registry config
-registries:
-  "demoServiceDiscovery":
-    protocol: "service-discovery"
-    params:
-      service_discovery: "etcdv3"
-      name_mapping: "in-memory"
-      metadata: "default"
-
-remote:
-  etcd:
-    address: "127.0.0.1:2379"
-    timeout: "5s"
-
-metadata_report:
-  protocol: "etcd"
-  remote_ref: "etcd"
-
-service_discovery:
-  etcdv3:
-    protocol: "etcd"
-    remote_ref: "etcd"
-    group: "dubbo"
-
-# reference config
-references:
-  "UserProvider":
-    registry: "demoServiceDiscovery"
-    provided_by: "UserInfoServer"
-    protocol: "dubbo"
-    interface: "org.apache.dubbo.UserProvider"
-    cluster: "failover"
-    methods:
-      - name: "GetUser"
-        retries: 3
-
-# protocol config
-protocol_conf:
-  dubbo:
-    reconnect_interval: 0
-    connection_number: 1
-    heartbeat_period: "5s"
-    session_timeout: "180s"
-    pool_size: 64
-    pool_ttl: 600
-    getty_session_param:
-      compress_encoding: false
-      tcp_no_delay: true
-      tcp_keep_alive: true
-      keep_alive_period: "120s"
-      tcp_r_buf_size: 262144
-      tcp_w_buf_size: 65536
-      pkg_rq_size: 1024
-      pkg_wq_size: 512
-      tcp_read_timeout: "1s"
-      tcp_write_timeout: "5s"
-      wait_timeout: "1s"
-      max_msg_len: 1024000
-      session_name: "client"
diff --git a/registry/servicediscovery/etcd/go-server/profiles/dev/log.yml b/registry/servicediscovery/etcd/go-server/profiles/dev/log.yml
deleted file mode 100644
index 2b6e93a..0000000
--- a/registry/servicediscovery/etcd/go-server/profiles/dev/log.yml
+++ /dev/null
@@ -1,27 +0,0 @@
-level: "debug"
-development: true
-disableCaller: false
-disableStacktrace: false
-sampling:
-encoding: "console"
-
-# encoder
-encoderConfig:
-  messageKey: "message"
-  levelKey: "level"
-  timeKey: "time"
-  nameKey: "logger"
-  callerKey: "caller"
-  stacktraceKey: "stacktrace"
-  lineEnding: ""
-  levelEncoder: "capital"
-  timeEncoder: "iso8601"
-  durationEncoder: "seconds"
-  callerEncoder: "short"
-  nameEncoder: ""
-
-outputPaths:
-  - "stderr"
-errorOutputPaths:
-  - "stderr"
-initialFields:
diff --git a/registry/servicediscovery/etcd/go-server/profiles/dev/server.yml b/registry/servicediscovery/etcd/go-server/profiles/dev/server.yml
deleted file mode 100644
index 3e0b1dc..0000000
--- a/registry/servicediscovery/etcd/go-server/profiles/dev/server.yml
+++ /dev/null
@@ -1,73 +0,0 @@
-# dubbo server yaml configure file
-
-# application config
-application:
-  organization: "dubbo.io"
-  name: "UserInfoServer"
-  module: "dubbo-go user-info server"
-  version: "0.0.1"
-  environment: "dev"
-  metadataType: "remote"
-
-# registry config
-registries:
-  "demoServiceDiscovery":
-    protocol: "service-discovery"
-    params:
-      service_discovery: "etcdv3"
-      name_mapping: "dynamic"
-      metadata: "default"
-
-metadata_report:
-  protocol: "etcdv3"
-  remote_ref: "etcd"
-
-service_discovery:
-  etcdv3:
-    protocol: "etcdv3"
-    remote_ref: "etcd"
-    group: "dubbo"
-
-remote:
-  etcd:
-    address: "127.0.0.1:2379"
-    timeout: "5s"
-
-# service config
-services:
-  "UserProvider":
-    registry: "demoServiceDiscovery"
-    protocol: "dubbo"
-    interface: "org.apache.dubbo.UserProvider"
-    loadbalance: "random"
-    warmup: "100"
-    cluster: "failover"
-    methods:
-      - name: "GetUser"
-        retries: 1
-        loadbalance: "random"
-
-# protocol config
-protocols:
-  "dubbo":
-    name: "dubbo"
-    port: 20001
-
-protocol_conf:
-  dubbo:
-    session_number: 700
-    session_timeout: "180s"
-    getty_session_param:
-      compress_encoding: false
-      tcp_no_delay: true
-      tcp_keep_alive: true
-      keep_alive_period: "120s"
-      tcp_r_buf_size: 262144
-      tcp_w_buf_size: 65536
-      pkg_rq_size: 1024
-      pkg_wq_size: 512
-      tcp_read_timeout: "1s"
-      tcp_write_timeout: "5s"
-      wait_timeout: "1s"
-      max_msg_len: 1024000
-      session_name: "server"
diff --git a/registry/servicediscovery/nacos/go-server/docker/docker-compose.yml b/registry/servicediscovery/nacos/docker/docker-compose.yml
similarity index 68%
rename from registry/servicediscovery/nacos/go-server/docker/docker-compose.yml
rename to registry/servicediscovery/nacos/docker/docker-compose.yml
index 168ad5f..6cdd1d7 100644
--- a/registry/servicediscovery/nacos/go-server/docker/docker-compose.yml
+++ b/registry/servicediscovery/nacos/docker/docker-compose.yml
@@ -1,9 +1,16 @@
 version: "3"
 
 services:
+  zk:
+    container_name: zk
+    image: zookeeper:3.5
+    ports:
+      - "52181:2181"
+    restart: on-failure
+
   nacos:
     image: nacos/nacos-server:1.4.1
-    container_name: nacos-standalone
+    container_name: nacos
     environment:
       - PREFER_HOST_MODE=hostname
       - MODE=standalone
diff --git a/registry/servicediscovery/nacos/go-server/docker/docker-health-check.sh b/registry/servicediscovery/nacos/docker/docker-health-check.sh
similarity index 100%
rename from registry/servicediscovery/nacos/go-server/docker/docker-health-check.sh
rename to registry/servicediscovery/nacos/docker/docker-health-check.sh
diff --git a/registry/servicediscovery/nacos/go-client/cmd/client.go b/registry/servicediscovery/nacos/go-client/cmd/client.go
index 5698fa2..09be06a 100644
--- a/registry/servicediscovery/nacos/go-client/cmd/client.go
+++ b/registry/servicediscovery/nacos/go-client/cmd/client.go
@@ -24,20 +24,10 @@ import (
 )
 
 import (
-	_ "dubbo.apache.org/dubbo-go/v3/cluster/cluster_impl"
-	_ "dubbo.apache.org/dubbo-go/v3/cluster/loadbalance"
 	_ "dubbo.apache.org/dubbo-go/v3/common/proxy/proxy_factory"
 	"dubbo.apache.org/dubbo-go/v3/config"
 	_ "dubbo.apache.org/dubbo-go/v3/config_center/nacos"
-	_ "dubbo.apache.org/dubbo-go/v3/filter/filter_impl"
-	_ "dubbo.apache.org/dubbo-go/v3/metadata/mapping/dynamic"
-	_ "dubbo.apache.org/dubbo-go/v3/metadata/report/nacos"
-	_ "dubbo.apache.org/dubbo-go/v3/metadata/service/local"
-	_ "dubbo.apache.org/dubbo-go/v3/metadata/service/remote"
-	_ "dubbo.apache.org/dubbo-go/v3/protocol/dubbo"
-	_ "dubbo.apache.org/dubbo-go/v3/registry/nacos"
-	_ "dubbo.apache.org/dubbo-go/v3/registry/protocol"
-	_ "dubbo.apache.org/dubbo-go/v3/registry/servicediscovery"
+	_ "dubbo.apache.org/dubbo-go/v3/imports"
 
 	hessian "github.com/apache/dubbo-go-hessian2"
 
@@ -55,7 +45,7 @@ func init() {
 	hessian.RegisterPOJO(&pkg.User{})
 }
 
-// need to setup environment variable "CONF_CONSUMER_FILE_PATH" to "conf/client.yml" before run
+// export DUBBO_GO_CONFIG_PATH = $PATH_TO_SAMPLES/registry/servicediscovery/nacos/go-client/conf/dubbogo.yml
 func main() {
 	hessian.RegisterPOJO(&pkg.User{})
 	config.Load()
@@ -63,8 +53,7 @@ func main() {
 
 	gxlog.CInfo("\n\n\nstart to test dubbo")
 	for i := 0; i < 123; i++ {
-		user := &pkg.User{}
-		err := userProvider.GetUser(context.TODO(), []interface{}{"A001"}, user)
+		user, err := userProvider.GetUser(context.TODO(), []interface{}{"A001"})
 		if err != nil {
 			gxlog.CError("error: %v\n", err)
 			os.Exit(1)
diff --git a/registry/servicediscovery/nacos/go-client/conf/client.yml b/registry/servicediscovery/nacos/go-client/conf/client.yml
deleted file mode 100644
index 0f22234..0000000
--- a/registry/servicediscovery/nacos/go-client/conf/client.yml
+++ /dev/null
@@ -1,79 +0,0 @@
-# dubbo client yaml configure file
-
-check: true
-# client
-request_timeout: "3s"
-# connect timeout
-connect_timeout: "3s"
-
-# config center config
-config_center:
-  protocol: "nacos"
-  address: "127.0.0.1:8848"
-
-# application config
-application:
-  organization: "dubbo.io"
-  name: "UserInfoTest"
-  module: "dubbo-go user-info client"
-  version: "0.0.1"
-  environment: "dev"
-
-# registry config
-registries:
-  "demoServiceDiscovery":
-    protocol: "service-discovery"
-    params:
-      service_discovery: "nacos1"
-      name_mapping: "in-memory"
-      metadata: "default"
-
-remote:
-  nacos:
-    address: "127.0.0.1:8848"
-    timeout: "5s"
-
-metadata_report:
-  protocol: "nacos"
-  remote_ref: "nacos"
-
-service_discovery:
-  nacos1:
-    protocol: "nacos"
-    remote_ref: "nacos"
-    group: "dubbo"
-
-# reference config
-references:
-  "UserProvider":
-    registry: "demoServiceDiscovery"
-    protocol: "dubbo"
-    interface: "org.apache.dubbo.UserProvider"
-    cluster: "failover"
-    methods:
-      - name: "GetUser"
-        retries: 3
-
-# protocol config
-protocol_conf:
-  dubbo:
-    reconnect_interval: 0
-    connection_number: 1
-    heartbeat_period: "5s"
-    session_timeout: "180s"
-    pool_size: 64
-    pool_ttl: 600
-    getty_session_param:
-      compress_encoding: false
-      tcp_no_delay: true
-      tcp_keep_alive: true
-      keep_alive_period: "120s"
-      tcp_r_buf_size: 262144
-      tcp_w_buf_size: 65536
-      pkg_rq_size: 1024
-      pkg_wq_size: 512
-      tcp_read_timeout: "1s"
-      tcp_write_timeout: "5s"
-      wait_timeout: "1s"
-      max_msg_len: 1024000
-      session_name: "client"
diff --git a/registry/servicediscovery/nacos/go-client/conf/dubbogo.yaml b/registry/servicediscovery/nacos/go-client/conf/dubbogo.yaml
new file mode 100644
index 0000000..e61efdb
--- /dev/null
+++ b/registry/servicediscovery/nacos/go-client/conf/dubbogo.yaml
@@ -0,0 +1,41 @@
+dubbo:
+  application:
+    metadata-type: remote
+
+  config-center:
+    protocol: zookeeper
+    address: 127.0.0.1:52181
+    data-id: "dubbo-go-samples-sd-zookeeper-server"
+
+  registries:
+    demoSD:
+      protocol: "nacos"
+      address: "127.0.0.1:8848"
+      registry-type: "service"
+      params:
+        service_discovery: "nacosSD"
+        name_mapping: "in-memory"
+        metadata: "default"
+
+  metadata-report:
+    protocol: "nacos"
+    address: "127.0.0.1:8848"
+    timeout: "10s"
+
+  service-discovery:
+    "nacosSD":
+      protocol: "nacos"
+
+  consumer:
+    registry:
+      - demoSD
+    references:
+      "UserProvider":
+        registry: "demoSD"
+        provided_by: "dubbo.io"
+        protocol: "dubbo"
+        interface: "org.apache.dubbo.UserProvider"
+        cluster: "failover"
+        methods:
+          - name: "GetUser"
+            retries: 3
\ No newline at end of file
diff --git a/registry/servicediscovery/nacos/go-client/pkg/user.go b/registry/servicediscovery/nacos/go-client/pkg/user.go
index 7733ea4..e9a38ad 100644
--- a/registry/servicediscovery/nacos/go-client/pkg/user.go
+++ b/registry/servicediscovery/nacos/go-client/pkg/user.go
@@ -30,7 +30,7 @@ type User struct {
 }
 
 type UserProvider struct {
-	GetUser func(ctx context.Context, req []interface{}, rsp *User) error
+	GetUser func(ctx context.Context, req []interface{}) (*User, error)
 }
 
 func (u *UserProvider) Reference() string {
diff --git a/registry/servicediscovery/nacos/go-server/cmd/server.go b/registry/servicediscovery/nacos/go-server/cmd/server.go
index 60694d9..b865ed0 100644
--- a/registry/servicediscovery/nacos/go-server/cmd/server.go
+++ b/registry/servicediscovery/nacos/go-server/cmd/server.go
@@ -26,21 +26,10 @@ import (
 )
 
 import (
-	_ "dubbo.apache.org/dubbo-go/v3/cluster/cluster_impl"
-	_ "dubbo.apache.org/dubbo-go/v3/cluster/loadbalance"
 	"dubbo.apache.org/dubbo-go/v3/common/logger"
 	_ "dubbo.apache.org/dubbo-go/v3/common/proxy/proxy_factory"
 	"dubbo.apache.org/dubbo-go/v3/config"
-	_ "dubbo.apache.org/dubbo-go/v3/config_center/nacos"
-	_ "dubbo.apache.org/dubbo-go/v3/filter/filter_impl"
-	_ "dubbo.apache.org/dubbo-go/v3/metadata/mapping/dynamic"
-	_ "dubbo.apache.org/dubbo-go/v3/metadata/report/nacos"
-	_ "dubbo.apache.org/dubbo-go/v3/metadata/service/remote"
-	_ "dubbo.apache.org/dubbo-go/v3/protocol/dubbo"
-	_ "dubbo.apache.org/dubbo-go/v3/protocol/jsonrpc"
-	_ "dubbo.apache.org/dubbo-go/v3/registry/nacos"
-	_ "dubbo.apache.org/dubbo-go/v3/registry/protocol"
-	_ "dubbo.apache.org/dubbo-go/v3/registry/servicediscovery"
+	_ "dubbo.apache.org/dubbo-go/v3/imports"
 
 	hessian "github.com/apache/dubbo-go-hessian2"
 )
diff --git a/registry/servicediscovery/nacos/go-server/conf/client.yml b/registry/servicediscovery/nacos/go-server/conf/client.yml
deleted file mode 100644
index 0f22234..0000000
--- a/registry/servicediscovery/nacos/go-server/conf/client.yml
+++ /dev/null
@@ -1,79 +0,0 @@
-# dubbo client yaml configure file
-
-check: true
-# client
-request_timeout: "3s"
-# connect timeout
-connect_timeout: "3s"
-
-# config center config
-config_center:
-  protocol: "nacos"
-  address: "127.0.0.1:8848"
-
-# application config
-application:
-  organization: "dubbo.io"
-  name: "UserInfoTest"
-  module: "dubbo-go user-info client"
-  version: "0.0.1"
-  environment: "dev"
-
-# registry config
-registries:
-  "demoServiceDiscovery":
-    protocol: "service-discovery"
-    params:
-      service_discovery: "nacos1"
-      name_mapping: "in-memory"
-      metadata: "default"
-
-remote:
-  nacos:
-    address: "127.0.0.1:8848"
-    timeout: "5s"
-
-metadata_report:
-  protocol: "nacos"
-  remote_ref: "nacos"
-
-service_discovery:
-  nacos1:
-    protocol: "nacos"
-    remote_ref: "nacos"
-    group: "dubbo"
-
-# reference config
-references:
-  "UserProvider":
-    registry: "demoServiceDiscovery"
-    protocol: "dubbo"
-    interface: "org.apache.dubbo.UserProvider"
-    cluster: "failover"
-    methods:
-      - name: "GetUser"
-        retries: 3
-
-# protocol config
-protocol_conf:
-  dubbo:
-    reconnect_interval: 0
-    connection_number: 1
-    heartbeat_period: "5s"
-    session_timeout: "180s"
-    pool_size: 64
-    pool_ttl: 600
-    getty_session_param:
-      compress_encoding: false
-      tcp_no_delay: true
-      tcp_keep_alive: true
-      keep_alive_period: "120s"
-      tcp_r_buf_size: 262144
-      tcp_w_buf_size: 65536
-      pkg_rq_size: 1024
-      pkg_wq_size: 512
-      tcp_read_timeout: "1s"
-      tcp_write_timeout: "5s"
-      wait_timeout: "1s"
-      max_msg_len: 1024000
-      session_name: "client"
diff --git a/registry/servicediscovery/nacos/go-server/conf/dubbogo.yaml b/registry/servicediscovery/nacos/go-server/conf/dubbogo.yaml
new file mode 100644
index 0000000..becbce5
--- /dev/null
+++ b/registry/servicediscovery/nacos/go-server/conf/dubbogo.yaml
@@ -0,0 +1,40 @@
+dubbo:
+  application:
+    metadata-type: remote
+
+  config-center:
+    protocol: "zookeeper"
+    address: "127.0.0.1:52181"
+
+  registries:
+    demoSD:
+      protocol: "nacos"
+      address: "127.0.0.1:8848"
+      registry-type: "service"
+      params:
+        service_discovery: "nacosSD"
+        name_mapping: "in-memory"
+        metadata: "default"
+
+  metadata-report:
+    protocol: "nacos"
+    address: "127.0.0.1:8848"
+    timeout: "10s"
+
+  service-discovery:
+    "nacosSD":
+      protocol: "nacos"
+
+  provider:
+    registry:
+      - demoSD
+    services:
+      "UserProvider":
+        registry: "demoSD"
+        provided_by: "dubbo.io"
+        protocol: "dubbo"
+        interface: "org.apache.dubbo.UserProvider"
+        cluster: "failover"
+        methods:
+          - name: "GetUser"
+            retries: 3
\ No newline at end of file
diff --git a/registry/servicediscovery/nacos/go-server/conf/server.yml b/registry/servicediscovery/nacos/go-server/conf/server.yml
deleted file mode 100644
index 205e936..0000000
--- a/registry/servicediscovery/nacos/go-server/conf/server.yml
+++ /dev/null
@@ -1,77 +0,0 @@
-# dubbo server yaml configure file
-
-# config center config
-config_center:
-  protocol: "nacos"
-  address: "127.0.0.1:8848"
-
-# application config
-application:
-  organization: "dubbo.io"
-  name: "UserInfoServer"
-  module: "dubbo-go user-info server"
-  version: "0.0.1"
-  environment: "dev"
-  metadataType: "remote"
-
-# registry config
-registries:
-  "demoServiceDiscovery":
-    protocol: "service-discovery"
-    params:
-      service_discovery: "nacos1"
-      name_mapping: "dynamic"
-      metadata: "default"
-
-remote:
-  nacos:
-    address: "127.0.0.1:8848"
-    timeout: "5s"
-
-metadata_report:
-  protocol: "nacos"
-  remote_ref: "nacos"
-
-service_discovery:
-  nacos1:
-    protocol: "nacos"
-    remote_ref: "nacos"
-    group: "dubbo"
-# service config
-services:
-  "UserProvider":
-    registry: "demoServiceDiscovery"
-    protocol: "dubbo"
-    interface: "org.apache.dubbo.UserProvider"
-    loadbalance: "random"
-    warmup: "100"
-    cluster: "failover"
-    methods:
-      - name: "GetUser"
-        retries: 1
-        loadbalance: "random"
-
-# protocol config
-protocols:
-  "dubbo":
-    name: "dubbo"
-    port: 20001
-
-protocol_conf:
-  dubbo:
-    session_number: 700
-    session_timeout: "180s"
-    getty_session_param:
-      compress_encoding: false
-      tcp_no_delay: true
-      tcp_keep_alive: true
-      keep_alive_period: "120s"
-      tcp_r_buf_size: 262144
-      tcp_w_buf_size: 65536
-      pkg_rq_size: 1024
-      pkg_wq_size: 512
-      tcp_read_timeout: "1s"
-      tcp_write_timeout: "5s"
-      wait_timeout: "1s"
-      max_msg_len: 1024000
-      session_name: "server"
diff --git a/registry/servicediscovery/nacos/go-server/pkg/user.go b/registry/servicediscovery/nacos/go-server/pkg/user.go
index 75d0916..46cde3c 100644
--- a/registry/servicediscovery/nacos/go-server/pkg/user.go
+++ b/registry/servicediscovery/nacos/go-server/pkg/user.go
@@ -31,7 +31,7 @@ import (
 )
 
 func init() {
-	config.SetProviderService(new(UserProvider))
+	config.SetProviderService(&UserProvider{})
 	// ------for hessian2------
 	hessian.RegisterPOJO(&User{})
 }