You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@dubbo.apache.org by zh...@apache.org on 2021/09/04 15:58:06 UTC

[dubbo-go-samples] 12/14: Feat/nacos registry (#217)

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

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

commit 008e2b2cc0186c788f6f8e2aa114a5ca01098765
Author: Mulavar <97...@qq.com>
AuthorDate: Fri Sep 3 21:13:29 2021 +0800

    Feat/nacos registry (#217)
    
    * add new protocol config & fomat yaml config
    
    * replace '_' with '-'
    
    * add nacos integrate test
    
    Co-authored-by: dongjianhui03 <do...@meituan.com>
---
 .run/registry/registry-nacos-go-client.run.xml     |  2 +-
 .../registry/nacos}/docker/docker-compose.yml      |  0
 .../registry/nacos}/docker/docker-health-check.sh  |  0
 .../registry/nacos}/tests/integration/main_test.go |  6 ++--
 .../nacos}/tests/integration/userprovider_test.go  |  3 +-
 registry/nacos/go-client/cmd/client.go             | 13 ++------
 registry/nacos/go-client/conf/dubbogo.yml          | 38 ++++++++++++++++++----
 registry/nacos/go-server/cmd/server.go             | 10 ++----
 registry/nacos/go-server/conf/dubbogo.yml          | 34 ++++++++++++++-----
 start_integrate_test.sh                            |  1 +
 10 files changed, 67 insertions(+), 40 deletions(-)

diff --git a/.run/registry/registry-nacos-go-client.run.xml b/.run/registry/registry-nacos-go-client.run.xml
index d720d09..0f9987d 100644
--- a/.run/registry/registry-nacos-go-client.run.xml
+++ b/.run/registry/registry-nacos-go-client.run.xml
@@ -4,7 +4,7 @@
     <working_directory value="$PROJECT_DIR$" />
     <envs>
       <env name="DUBBO_GO_CONFIG_PATH" value="$PROJECT_DIR$/registry/nacos/go-client/conf/dubbogo.yml" />
-      <env name="APP_LOG_CONF_FILE" value="$PROJECT_DIR$/general/registry/nacos/go-client/conf/log.yml" />
+      <env name="APP_LOG_CONF_FILE" value="$PROJECT_DIR$/registry/nacos/go-client/conf/log.yml" />
     </envs>
     <kind value="PACKAGE" />
     <package value="github.com/apache/dubbo-go-samples/registry/nacos/go-client/cmd" />
diff --git a/registry/nacos/go-server/docker/docker-compose.yml b/integrate_test/registry/nacos/docker/docker-compose.yml
similarity index 100%
rename from registry/nacos/go-server/docker/docker-compose.yml
rename to integrate_test/registry/nacos/docker/docker-compose.yml
diff --git a/registry/nacos/go-server/docker/docker-health-check.sh b/integrate_test/registry/nacos/docker/docker-health-check.sh
similarity index 100%
rename from registry/nacos/go-server/docker/docker-health-check.sh
rename to integrate_test/registry/nacos/docker/docker-health-check.sh
diff --git a/registry/nacos/go-server/tests/integration/main_test.go b/integrate_test/registry/nacos/tests/integration/main_test.go
similarity index 93%
rename from registry/nacos/go-server/tests/integration/main_test.go
rename to integrate_test/registry/nacos/tests/integration/main_test.go
index 7de6914..1667576 100644
--- a/registry/nacos/go-server/tests/integration/main_test.go
+++ b/integrate_test/registry/nacos/tests/integration/main_test.go
@@ -39,7 +39,7 @@ import (
 	hessian "github.com/apache/dubbo-go-hessian2"
 )
 
-var userProvider = new(UserProvider)
+var userProvider = &UserProvider{}
 
 func TestMain(m *testing.M) {
 	config.SetConsumerService(userProvider)
@@ -58,11 +58,11 @@ type User struct {
 }
 
 type UserProvider struct {
-	GetUser func(ctx context.Context, req []interface{}, rsp *User) error
+	GetUser func(ctx context.Context, req *User) (rsp *User, err error)
 }
 
 func (u *UserProvider) Reference() string {
-	return "UserProvider"
+	return "userProvider"
 }
 
 func (User) JavaClassName() string {
diff --git a/registry/nacos/go-server/tests/integration/userprovider_test.go b/integrate_test/registry/nacos/tests/integration/userprovider_test.go
similarity index 92%
rename from registry/nacos/go-server/tests/integration/userprovider_test.go
rename to integrate_test/registry/nacos/tests/integration/userprovider_test.go
index 7183e64..7f17774 100644
--- a/registry/nacos/go-server/tests/integration/userprovider_test.go
+++ b/integrate_test/registry/nacos/tests/integration/userprovider_test.go
@@ -29,8 +29,7 @@ import (
 )
 
 func TestGetUser(t *testing.T) {
-	user := &User{}
-	err := userProvider.GetUser(context.TODO(), []interface{}{"A001"}, user)
+	user, err := userProvider.GetUser(context.TODO(), &User{ID: "A001"})
 	assert.Nil(t, err)
 	assert.Equal(t, "A001", user.ID)
 	assert.Equal(t, "Alex Stocks", user.Name)
diff --git a/registry/nacos/go-client/cmd/client.go b/registry/nacos/go-client/cmd/client.go
index 5412757..5fa85e1 100644
--- a/registry/nacos/go-client/cmd/client.go
+++ b/registry/nacos/go-client/cmd/client.go
@@ -24,14 +24,8 @@ 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/protocol/dubbo"
-	_ "dubbo.apache.org/dubbo-go/v3/registry/nacos"
-	_ "dubbo.apache.org/dubbo-go/v3/registry/protocol"
+	_ "dubbo.apache.org/dubbo-go/v3/imports"
 
 	hessian "github.com/apache/dubbo-go-hessian2"
 
@@ -39,7 +33,7 @@ import (
 )
 
 type UserProvider struct {
-	GetUser func(ctx context.Context, req []interface{}, rsp *User) error
+	GetUser func(ctx context.Context, req *User) (rsp *User, err error)
 }
 
 func (u *UserProvider) Reference() string {
@@ -66,8 +60,7 @@ func main() {
 	time.Sleep(3 * time.Second)
 
 	gxlog.CInfo("\n\n\nstart to test dubbo")
-	user := &User{}
-	err := userProvider.GetUser(context.TODO(), []interface{}{"A001"}, user)
+	user, err := userProvider.GetUser(context.TODO(), &User{Name: "Alex001"})
 	if err != nil {
 		gxlog.CError("error: %v\n", err)
 		os.Exit(1)
diff --git a/registry/nacos/go-client/conf/dubbogo.yml b/registry/nacos/go-client/conf/dubbogo.yml
index a3eafaa..3545d9a 100644
--- a/registry/nacos/go-client/conf/dubbogo.yml
+++ b/registry/nacos/go-client/conf/dubbogo.yml
@@ -1,13 +1,37 @@
 dubbo:
   registries:
-    "demoNacos":
-      protocol: "nacos"
-      timeout: "3s"
-      address: "127.0.0.1:8848"
+    demoNacos:
+      protocol: nacos
+      timeout: 3s
+      address: 127.0.0.1:8848
+  protocols:
+    dubbo:
+      name: dubbo
+      port: 20000
+      # 在 params 中定义当前使用的协议特有的网络配置
+      # 如该 sample 配置的是 dubbo 协议(底层使用 getty 通信库)的参数
+      params:
+        reconnect-interval: 2
+        connection-number: 1
+        heartbeat-period: 5s
+        session-timeout: 180s
+        pool-size: 64
+        pool-ttl: 600
+        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
+        tcp-read-timeout: 1s
+        tcp-write-timeout: 5s
+        wait-timeout: 1s
+        max-msg-len: 1024000
+        session-name: client
   consumer:
     registry:
       - demoNacos
     references:
-      "userProvider":
-        protocol: "dubbo"
-        interface: "org.apache.dubbo.UserProvider"
\ No newline at end of file
+      userProvider:
+        protocol: dubbo
+        interface: org.apache.dubbo.UserProvider
\ No newline at end of file
diff --git a/registry/nacos/go-server/cmd/server.go b/registry/nacos/go-server/cmd/server.go
index 1670192..b71d550 100644
--- a/registry/nacos/go-server/cmd/server.go
+++ b/registry/nacos/go-server/cmd/server.go
@@ -27,15 +27,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/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/protocol/dubbo"
-	_ "dubbo.apache.org/dubbo-go/v3/registry/nacos"
-	_ "dubbo.apache.org/dubbo-go/v3/registry/protocol"
+	_ "dubbo.apache.org/dubbo-go/v3/imports"
 
 	hessian "github.com/apache/dubbo-go-hessian2"
 
@@ -62,7 +56,7 @@ type User struct {
 type UserProvider struct {
 }
 
-func (u *UserProvider) GetUser(ctx context.Context, req []interface{}) (*User, error) {
+func (u *UserProvider) GetUser(ctx context.Context, req *User) (*User, error) {
 	gxlog.CInfo("req:%#v", req)
 	rsp := User{"A001", "Alex Stocks", 18, time.Now()}
 	gxlog.CInfo("rsp:%#v", rsp)
diff --git a/registry/nacos/go-server/conf/dubbogo.yml b/registry/nacos/go-server/conf/dubbogo.yml
index d485271..d674560 100644
--- a/registry/nacos/go-server/conf/dubbogo.yml
+++ b/registry/nacos/go-server/conf/dubbogo.yml
@@ -1,17 +1,33 @@
 dubbo:
   registries:
-    "demoNacos":
-      protocol: "nacos"
-      timeout: "3s"
-      address: "127.0.0.1:8848"
+    demoNacos:
+      protocol: nacos
+      timeout: 3s
+      address: 127.0.0.1:8848
   protocols:
-    "dubbo":
-      name: "dubbo"
+    dubbo:
+      name: dubbo
       port: 20000
+      # 在 params 中定义当前使用的协议特有的网络配置
+      # 如该 sample 配置的是 dubbo 协议(底层使用 getty 通信库)
+      params:
+        session-number: 700
+        session-timeout: 180s
+        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
+        tcp-read-timeout: 10s
+        tcp-write-timeout: 5s
+        wait-timeout: 1s
+        max-msg-len: 1024000
+        session-name: server
   provider:
     registry:
       - demoNacos
     services:
-      "userProvider":
-        protocol: "dubbo"
-        interface: "org.apache.dubbo.UserProvider"
\ No newline at end of file
+      userProvider:
+        protocol: dubbo
+        interface: org.apache.dubbo.UserProvider
\ No newline at end of file
diff --git a/start_integrate_test.sh b/start_integrate_test.sh
index 0f6758d..2758e9c 100755
--- a/start_integrate_test.sh
+++ b/start_integrate_test.sh
@@ -95,6 +95,7 @@ array+=("config-api/rpc/triple")
 array+=("registry/zookeeper")
 array+=("rpc/dubbo3/codec-extension")
 array+=("rpc/dubbo3/hessian2")
+array+=("registry/nacos")
 
 for((i=0;i<${#array[*]};i++))
 do