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 <[email protected]> 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 <[email protected]> --- .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
