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:03 UTC
[dubbo-go-samples] 09/14: Add apollo config center sample (#208)
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 a2409c2c1d67e3375d0125668a9b6b42386eee8b
Author: Baster <ja...@gmail.com>
AuthorDate: Sat Aug 28 09:07:12 2021 +0800
Add apollo config center sample (#208)
* add apollo config center sample
* add apollo config center example
* update config
* delete debug file
* add initSignal func for apollo sample
* update apollo run xml
* update apollo sample reademe md
* add apollo test interation
* update go mod
Co-authored-by: zengfanwei <ze...@yalla.live>
---
.../configcenter-apollo-client.run.xml | 27 +++++----
.../configcenter-apollo-server.run.xml | 27 +++++----
.run/configcenter/configcenter-apollo-test.run.xml | 9 ++-
.run/helloworld-go-server.run.xml | 14 -----
configcenter/apollo/README.md | 64 +++++++++++++++++++++
configcenter/apollo/README_zh.md | 60 ++++++++++++++++++++
configcenter/apollo/go-client/cmd/client.go | 41 +++++---------
configcenter/apollo/go-client/conf/client.yml | 66 ----------------------
configcenter/apollo/go-client/conf/dubbogo.yml | 7 +++
configcenter/apollo/go-client/conf/log.yml | 28 ---------
configcenter/apollo/go-client/pkg/user.go | 42 --------------
configcenter/apollo/go-server/cmd/server.go | 33 ++++++-----
configcenter/apollo/go-server/conf/client.yml | 66 ----------------------
configcenter/apollo/go-server/conf/dubbogo.yml | 7 +++
configcenter/apollo/go-server/conf/log.yml | 28 ---------
configcenter/apollo/go-server/conf/server.yml | 62 --------------------
configcenter/apollo/go-server/pkg/user.go | 62 --------------------
go.mod | 4 +-
.../configcenter/apollo}/docker/docker-compose.yml | 0
.../apollo}/docker/docker-health-check.sh | 0
.../apollo}/docker/sql/apolloconfigdb.sql | 0
.../apollo}/docker/sql/apolloportaldb.sql | 0
.../tests/integration/greeterProvider_test.go | 26 ++++++---
.../apollo}/tests/integration/main_test.go | 30 ++--------
.../tests/integration/userprovider_test.go | 33 +++++------
25 files changed, 242 insertions(+), 494 deletions(-)
diff --git a/.run/configcenter/configcenter-apollo-client.run.xml b/.run/configcenter/configcenter-apollo-client.run.xml
index 769b395..f6fdc16 100644
--- a/.run/configcenter/configcenter-apollo-client.run.xml
+++ b/.run/configcenter/configcenter-apollo-client.run.xml
@@ -1,15 +1,14 @@
<component name="ProjectRunConfigurationManager">
- <configuration default="false" name="configcenter-apollo-client" type="GoApplicationRunConfiguration" factoryName="Go Application" singleton="false">
- <module name="dubbo-go-samples" />
- <working_directory value="$PROJECT_DIR$" />
- <envs>
- <env name="APP_LOG_CONF_FILE" value="$PROJECT_DIR$/configcenter/apollo/go-client/conf/log.yml" />
- <env name="CONF_CONSUMER_FILE_PATH" value="$PROJECT_DIR$/configcenter/apollo/go-client/conf/client.yml" />
- </envs>
- <kind value="PACKAGE" />
- <filePath value="$PROJECT_DIR$/configcenter/apollo/go-client/cmd/client.go" />
- <package value="github.com/apache/dubbo-go-samples/configcenter/apollo/go-client/cmd" />
- <directory value="$PROJECT_DIR$" />
- <method v="2" />
- </configuration>
-</component>
+ <configuration default="false" name="configcenter-apollo-client" type="GoApplicationRunConfiguration" factoryName="Go Application" folderName="v3config-configcenter" singleton="true">
+ <module name="dubbo-go-samples" />
+ <working_directory value="$PROJECT_DIR$/configcenter/apollo/go-client" />
+ <envs>
+ <env name="DUBBO_GO_CONFIG_PATH" value="$PROJECT_DIR$/configcenter/apollo/go-client/conf/dubbogo.yml" />
+ </envs>
+ <kind value="PACKAGE" />
+ <package value="github.com/apache/dubbo-go-samples/configcenter/apollo/go-client/cmd" />
+ <directory value="$PROJECT_DIR$" />
+ <filePath value="$PROJECT_DIR$/configcenter/apollo/go-client/cmd/client.go" />
+ <method v="2" />
+ </configuration>
+</component>
\ No newline at end of file
diff --git a/.run/configcenter/configcenter-apollo-server.run.xml b/.run/configcenter/configcenter-apollo-server.run.xml
index 3384df6..de38711 100644
--- a/.run/configcenter/configcenter-apollo-server.run.xml
+++ b/.run/configcenter/configcenter-apollo-server.run.xml
@@ -1,15 +1,14 @@
<component name="ProjectRunConfigurationManager">
- <configuration default="false" name="configcenter-apollo-server" type="GoApplicationRunConfiguration" factoryName="Go Application" singleton="false">
- <module name="dubbo-go-samples" />
- <working_directory value="$PROJECT_DIR$" />
- <envs>
- <env name="CONF_PROVIDER_FILE_PATH" value="$PROJECT_DIR$/configcenter/apollo/go-server/conf/server.yml" />
- <env name="APP_LOG_CONF_FILE" value="$PROJECT_DIR$/configcenter/apollo/go-server/conf/log.yml" />
- </envs>
- <kind value="PACKAGE" />
- <filePath value="$PROJECT_DIR$/configcenter/apollo/go-server/cmd/server.go" />
- <package value="github.com/apache/dubbo-go-samples/configcenter/apollo/go-server/cmd" />
- <directory value="$PROJECT_DIR$" />
- <method v="2" />
- </configuration>
-</component>
+ <configuration default="false" name="configcenter-apollo-server" type="GoApplicationRunConfiguration" factoryName="Go Application" folderName="v3config-configcenter" singleton="true">
+ <module name="dubbo-go-samples" />
+ <working_directory value="$PROJECT_DIR$/configcenter/apollo/go-server" />
+ <envs>
+ <env name="DUBBO_GO_CONFIG_PATH" value="$PROJECT_DIR$/configcenter/apollo/go-server/conf/dubbogo.yml" />
+ </envs>
+ <kind value="PACKAGE" />
+ <package value="github.com/apache/dubbo-go-samples/configcenter/apollo/go-server/cmd" />
+ <directory value="$PROJECT_DIR$" />
+ <filePath value="$PROJECT_DIR$/configcenter/apollo/go-client/cmd/server.go" />
+ <method v="2" />
+ </configuration>
+</component>
\ No newline at end of file
diff --git a/.run/configcenter/configcenter-apollo-test.run.xml b/.run/configcenter/configcenter-apollo-test.run.xml
index 36035f1..1bfcf2b 100644
--- a/.run/configcenter/configcenter-apollo-test.run.xml
+++ b/.run/configcenter/configcenter-apollo-test.run.xml
@@ -1,15 +1,14 @@
<component name="ProjectRunConfigurationManager">
- <configuration default="false" name="configcenter-apollo-test" type="GoTestRunConfiguration" factoryName="Go Test">
+ <configuration default="false" name="configcenter-apollo-test" type="GoTestRunConfiguration" factoryName="Go Test" >
<module name="dubbo-go-samples" />
- <working_directory value="$PROJECT_DIR$/configcenter/apollo" />
+ <working_directory value="$PROJECT_DIR$/integrate_test/configcenter/apollo" />
<useCustomBuildTags value="true" />
<envs>
- <env name="CONF_CONSUMER_FILE_PATH" value="go-server/conf/client.yml" />
- <env name="APP_LOG_CONF_FILE" value="go-server/conf/log.yml" />
+ <env name="DUBBO_GO_CONFIG_PATH" value="$PROJECT_DIR$/configcenter/apollo/go-server/conf/dubbogo.yml" />
</envs>
<framework value="gotest" />
<kind value="PACKAGE" />
- <package value="github.com/apache/dubbo-go-samples/configcenter/apollo/go-server/tests/integration" />
+ <package value="github.com/apache/dubbo-go-samples/integrate_test/configcenter/apollo/tests/integration" />
<directory value="$PROJECT_DIR$" />
<filePath value="$PROJECT_DIR$" />
<method v="2" />
diff --git a/.run/helloworld-go-server.run.xml b/.run/helloworld-go-server.run.xml
deleted file mode 100644
index 12a75d0..0000000
--- a/.run/helloworld-go-server.run.xml
+++ /dev/null
@@ -1,14 +0,0 @@
-<component name="ProjectRunConfigurationManager">
- <configuration default="false" name="helloworld-go-server" type="GoApplicationRunConfiguration" factoryName="Go Application" folderName="v3config-helloworld" singleton="true">
- <module name="dubbo-go-samples" />
- <working_directory value="$PROJECT_DIR$" />
- <envs>
- <env name="DUBBO_GO_CONFIG_PATH" value="$PROJECT_DIR$/helloworld/go-server/conf/dubbogo.yml" />
- </envs>
- <kind value="PACKAGE" />
- <package value="github.com/apache/dubbo-go-samples/helloworld/go-server/cmd" />
- <directory value="$PROJECT_DIR$" />
- <filePath value="$PROJECT_DIR$/helloworld/go-client/cmd/client.go" />
- <method v="2" />
- </configuration>
-</component>
\ No newline at end of file
diff --git a/configcenter/apollo/README.md b/configcenter/apollo/README.md
new file mode 100644
index 0000000..7ff6697
--- /dev/null
+++ b/configcenter/apollo/README.md
@@ -0,0 +1,64 @@
+# Apollo config center example
+
+
+## Instructions
+
+
+### go-server start
+
+1. Create new apollo server namespace for yaml format
+
+2. Add provider config content
+```yaml
+dubbo:
+ application:
+ name: "demo-server"
+ version: "2.0"
+ registries:
+ "demoZK":
+ protocol: "zookeeper"
+ timeout: "3s"
+ address: "127.0.0.1:2181"
+ protocols:
+ "triple":
+ name: "tri"
+ port: 20000
+ provider:
+ registry:
+ - demoZK
+ services:
+ "greeterImpl":
+ protocol: "triple"
+ interface: "com.apache.dubbo.sample.basic.IGreeter" # must be compatible with grpc or dubbo-java
+```
+
+3. Start provider server
+
+### go-client start
+
+1. Create new apollo client namespace for yaml format
+
+2. Add client config content
+
+```yaml
+dubbo:
+ registries:
+ "demoZK":
+ protocol: "zookeeper"
+ timeout: "3s"
+ address: "127.0.0.1:2181"
+ consumer:
+ registry:
+ - demoZK
+ references:
+ "greeterImpl":
+ protocol: "tri"
+ interface: "com.apache.dubbo.sample.basic.IGreeter" # must be compatible with grpc or dubbo-java
+```
+
+3. Start provider server
+
+
+
+
+
diff --git a/configcenter/apollo/README_zh.md b/configcenter/apollo/README_zh.md
new file mode 100644
index 0000000..6fd7a14
--- /dev/null
+++ b/configcenter/apollo/README_zh.md
@@ -0,0 +1,60 @@
+# Apollo 配置中心示例
+
+
+## 介绍
+
+
+### go-server 启动
+
+1. 创建新的apollo服务端yaml格式的namespace
+
+2. 添加服务端配置内容
+
+```yaml
+dubbo:
+ application:
+ name: "demo-server"
+ version: "2.0"
+ registries:
+ "demoZK":
+ protocol: "zookeeper"
+ timeout: "3s"
+ address: "127.0.0.1:2181"
+ protocols:
+ "triple":
+ name: "tri"
+ port: 20000
+ provider:
+ registry:
+ - demoZK
+ services:
+ "greeterImpl":
+ protocol: "triple"
+ interface: "com.apache.dubbo.sample.basic.IGreeter" # must be compatible with grpc or dubbo-java
+```
+
+3. 启动go-server
+
+### go-client 启动
+
+1. 创建新的apollo客户端yaml格式的namespace
+
+2. 添加客户端配置内容
+
+```yaml
+dubbo:
+ registries:
+ "demoZK":
+ protocol: "zookeeper"
+ timeout: "3s"
+ address: "127.0.0.1:2181"
+ consumer:
+ registry:
+ - demoZK
+ references:
+ "greeterImpl":
+ protocol: "tri"
+ interface: "com.apache.dubbo.sample.basic.IGreeter" # must be compatible with grpc or dubbo-java
+```
+
+3. 启动go-client
\ No newline at end of file
diff --git a/configcenter/apollo/go-client/cmd/client.go b/configcenter/apollo/go-client/cmd/client.go
index 37c1b05..68fe2c0 100644
--- a/configcenter/apollo/go-client/cmd/client.go
+++ b/configcenter/apollo/go-client/cmd/client.go
@@ -19,50 +19,37 @@ package main
import (
"context"
- "os"
"time"
)
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/common/logger"
"dubbo.apache.org/dubbo-go/v3/config"
- _ "dubbo.apache.org/dubbo-go/v3/config_center/apollo"
- _ "dubbo.apache.org/dubbo-go/v3/filter/filter_impl"
- _ "dubbo.apache.org/dubbo-go/v3/protocol/dubbo"
- _ "dubbo.apache.org/dubbo-go/v3/registry/protocol"
- _ "dubbo.apache.org/dubbo-go/v3/registry/zookeeper"
-
- hessian "github.com/apache/dubbo-go-hessian2"
-
- "github.com/dubbogo/gost/log"
+ _ "dubbo.apache.org/dubbo-go/v3/imports"
)
import (
- "github.com/apache/dubbo-go-samples/configcenter/apollo/go-client/pkg"
+ "github.com/apache/dubbo-go-samples/api"
)
-var userProvider = new(pkg.UserProvider)
+var grpcGreeterImpl = new(api.GreeterClientImpl)
func init() {
- config.SetConsumerService(userProvider)
- hessian.RegisterPOJO(&pkg.User{})
+ config.SetConsumerService(grpcGreeterImpl)
}
-// need to setup environment variable "CONF_CONSUMER_FILE_PATH" to "conf/client.yml" before run
+// export DUBBO_GO_CONFIG_PATH= PATH_TO_SAMPLES/helloworld/go-client/conf/dubbogo.yml
func main() {
- hessian.RegisterPOJO(&pkg.User{})
config.Load()
time.Sleep(3 * time.Second)
- gxlog.CInfo("\n\n\nstart to test dubbo")
- user := &pkg.User{}
- err := userProvider.GetUser(context.TODO(), []interface{}{"A001"}, user)
- if err != nil {
- gxlog.CError("error: %v\n", err)
- os.Exit(1)
- return
+ logger.Info("start to test dubbo")
+ req := &api.HelloRequest{
+ Name: "laurence",
+ }
+ reply := &api.User{}
+ if err := grpcGreeterImpl.SayHello(context.Background(), req, reply); err != nil {
+ logger.Error(err)
}
- gxlog.CInfo("response result: %v\n", user)
+ logger.Infof("client response result: %v\n", reply)
}
diff --git a/configcenter/apollo/go-client/conf/client.yml b/configcenter/apollo/go-client/conf/client.yml
deleted file mode 100644
index 5b8c6c0..0000000
--- a/configcenter/apollo/go-client/conf/client.yml
+++ /dev/null
@@ -1,66 +0,0 @@
-# dubbo client yaml configure file
-
-check: true
-# client
-request_timeout: "3s"
-# connect timeout
-connect_timeout: "3s"
-
-# config center config
-config_center:
- protocol: apollo
- address: 127.0.0.1:8080
- app_id: UserInfoClient
- cluster: dev
-
-# application config
-application:
- organization: "dubbo.io"
- name: "user-info-client"
- module: "dubbo-go user-info client"
- version: "0.0.1"
- environment: "dev"
-
-# registry config
-registries:
- "demoZk":
- protocol: "zookeeper"
- timeout: "3s"
- address: "127.0.0.1:2181"
- username: ""
- password: ""
-
-# reference config
-references:
- "UserProvider":
- registry: "demoZk"
- 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/configcenter/apollo/go-client/conf/dubbogo.yml b/configcenter/apollo/go-client/conf/dubbogo.yml
new file mode 100644
index 0000000..c147f2e
--- /dev/null
+++ b/configcenter/apollo/go-client/conf/dubbogo.yml
@@ -0,0 +1,7 @@
+dubbo:
+ config-center:
+ protocol: "apollo"
+ address: "localhost:8080"
+ app-id: "demo_server"
+ cluster: "default"
+ namespace: "demo-client-config"
diff --git a/configcenter/apollo/go-client/conf/log.yml b/configcenter/apollo/go-client/conf/log.yml
deleted file mode 100644
index d0400fe..0000000
--- a/configcenter/apollo/go-client/conf/log.yml
+++ /dev/null
@@ -1,28 +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/configcenter/apollo/go-client/pkg/user.go b/configcenter/apollo/go-client/pkg/user.go
deleted file mode 100644
index 7733ea4..0000000
--- a/configcenter/apollo/go-client/pkg/user.go
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package pkg
-
-import (
- "context"
- "time"
-)
-
-type User struct {
- ID string
- Name string
- Age int32
- Time time.Time
-}
-
-type UserProvider struct {
- GetUser func(ctx context.Context, req []interface{}, rsp *User) error
-}
-
-func (u *UserProvider) Reference() string {
- return "UserProvider"
-}
-
-func (User) JavaClassName() string {
- return "org.apache.dubbo.User"
-}
diff --git a/configcenter/apollo/go-server/cmd/server.go b/configcenter/apollo/go-server/cmd/server.go
index e8adb2b..7e54974 100644
--- a/configcenter/apollo/go-server/cmd/server.go
+++ b/configcenter/apollo/go-server/cmd/server.go
@@ -18,6 +18,7 @@
package main
import (
+ "context"
"fmt"
"os"
"os/signal"
@@ -26,33 +27,35 @@ 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/apollo"
- _ "dubbo.apache.org/dubbo-go/v3/filter/filter_impl"
- _ "dubbo.apache.org/dubbo-go/v3/protocol/dubbo"
- _ "dubbo.apache.org/dubbo-go/v3/registry/protocol"
- _ "dubbo.apache.org/dubbo-go/v3/registry/zookeeper"
-
- hessian "github.com/apache/dubbo-go-hessian2"
+ _ "dubbo.apache.org/dubbo-go/v3/imports"
)
import (
- "github.com/apache/dubbo-go-samples/configcenter/apollo/go-server/pkg"
+ "github.com/apache/dubbo-go-samples/api"
)
var (
survivalTimeout = int(3e9)
)
-// need to setup environment variable "CONF_PROVIDER_FILE_PATH" to "conf/server.yml" before run
-func main() {
- hessian.RegisterPOJO(&pkg.User{})
- config.Load()
+type GreeterProvider struct {
+ api.GreeterProviderBase
+}
+
+func (s *GreeterProvider) SayHello(ctx context.Context, in *api.HelloRequest) (*api.User, error) {
+ logger.Infof("Dubbo3 GreeterProvider get user name = %s\n", in.Name)
+ return &api.User{Name: "Hello " + in.Name, Id: "12345", Age: 21}, nil
+}
+
+func main() {
+ config.SetProviderService(&GreeterProvider{})
+ err := config.Load()
+ if err != nil {
+ panic(err)
+ }
initSignal()
}
diff --git a/configcenter/apollo/go-server/conf/client.yml b/configcenter/apollo/go-server/conf/client.yml
deleted file mode 100644
index 8a1bf33..0000000
--- a/configcenter/apollo/go-server/conf/client.yml
+++ /dev/null
@@ -1,66 +0,0 @@
-# dubbo client yaml configure file
-
-check: true
-# client
-request_timeout: "3s"
-# connect timeout
-connect_timeout: "3s"
-
-# config center config
-config_center:
- protocol: apollo
- address: 127.0.0.1:8080
- app_id: UserInfoTest
- cluster: dev
-
-# application config
-application:
- organization: "dubbo.io"
- name: "user-info-client"
- module: "dubbo-go user-info client"
- version: "0.0.1"
- environment: "dev"
-
-# registry config
-registries:
- "demoZk":
- protocol: "zookeeper"
- timeout: "3s"
- address: "127.0.0.1:2181"
- username: ""
- password: ""
-
-# reference config
-references:
- "UserProvider":
- registry: "demoZk"
- 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/configcenter/apollo/go-server/conf/dubbogo.yml b/configcenter/apollo/go-server/conf/dubbogo.yml
new file mode 100644
index 0000000..0b09dab
--- /dev/null
+++ b/configcenter/apollo/go-server/conf/dubbogo.yml
@@ -0,0 +1,7 @@
+dubbo:
+ config-center:
+ protocol: "apollo"
+ address: "localhost:8080"
+ app-id: "demo_server"
+ cluster: "default"
+ namespace: "demo-provider-config"
diff --git a/configcenter/apollo/go-server/conf/log.yml b/configcenter/apollo/go-server/conf/log.yml
deleted file mode 100644
index a75bccb..0000000
--- a/configcenter/apollo/go-server/conf/log.yml
+++ /dev/null
@@ -1,28 +0,0 @@
-
-level: "error"
-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/configcenter/apollo/go-server/conf/server.yml b/configcenter/apollo/go-server/conf/server.yml
deleted file mode 100644
index 5053ec5..0000000
--- a/configcenter/apollo/go-server/conf/server.yml
+++ /dev/null
@@ -1,62 +0,0 @@
-# dubbo server yaml configure file
-
-# config center config
-config_center:
- protocol: apollo
- address: 127.0.0.1:8080
- app_id: UserInfoServer
- cluster: dev
-
-# application config
-application:
- organization: "dubbo.io"
- name: "user-info-server"
- module: "dubbo-go user-info server"
- version: "0.0.1"
- environment: "dev"
-
-# registry config
-registries:
- "demoZk":
- protocol: "zookeeper"
- timeout: "3s"
- address: "127.0.0.1:2181"
-
-# service config
-services:
- "UserProvider":
- registry: "demoZk"
- 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: 20000
-
-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/configcenter/apollo/go-server/pkg/user.go b/configcenter/apollo/go-server/pkg/user.go
deleted file mode 100644
index 75d0916..0000000
--- a/configcenter/apollo/go-server/pkg/user.go
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package pkg
-
-import (
- "context"
- "time"
-)
-
-import (
- "dubbo.apache.org/dubbo-go/v3/config"
-
- hessian "github.com/apache/dubbo-go-hessian2"
-
- "github.com/dubbogo/gost/log"
-)
-
-func init() {
- config.SetProviderService(new(UserProvider))
- // ------for hessian2------
- hessian.RegisterPOJO(&User{})
-}
-
-type User struct {
- ID string
- Name string
- Age int32
- Time time.Time
-}
-
-type UserProvider struct {
-}
-
-func (u *UserProvider) GetUser(ctx context.Context, req []interface{}) (*User, error) {
- gxlog.CInfo("req:%#v", req)
- rsp := User{"A001", "Alex Stocks", 18, time.Now()}
- gxlog.CInfo("rsp:%#v", rsp)
- return &rsp, nil
-}
-
-func (u *UserProvider) Reference() string {
- return "UserProvider"
-}
-
-func (u User) JavaClassName() string {
- return "org.apache.dubbo.User"
-}
diff --git a/go.mod b/go.mod
index 550d8f4..d9d33bc 100644
--- a/go.mod
+++ b/go.mod
@@ -28,6 +28,8 @@ require (
k8s.io/kube-openapi v0.0.0-20191107075043-30be4d16710a // indirect
)
-replace github.com/envoyproxy/go-control-plane => github.com/envoyproxy/go-control-plane v0.8.0
+replace (
+ github.com/envoyproxy/go-control-plane => github.com/envoyproxy/go-control-plane v0.8.0
+)
go 1.13
diff --git a/configcenter/apollo/go-server/docker/docker-compose.yml b/integrate_test/configcenter/apollo/docker/docker-compose.yml
similarity index 100%
rename from configcenter/apollo/go-server/docker/docker-compose.yml
rename to integrate_test/configcenter/apollo/docker/docker-compose.yml
diff --git a/configcenter/apollo/go-server/docker/docker-health-check.sh b/integrate_test/configcenter/apollo/docker/docker-health-check.sh
similarity index 100%
rename from configcenter/apollo/go-server/docker/docker-health-check.sh
rename to integrate_test/configcenter/apollo/docker/docker-health-check.sh
diff --git a/configcenter/apollo/go-server/docker/sql/apolloconfigdb.sql b/integrate_test/configcenter/apollo/docker/sql/apolloconfigdb.sql
similarity index 100%
rename from configcenter/apollo/go-server/docker/sql/apolloconfigdb.sql
rename to integrate_test/configcenter/apollo/docker/sql/apolloconfigdb.sql
diff --git a/configcenter/apollo/go-server/docker/sql/apolloportaldb.sql b/integrate_test/configcenter/apollo/docker/sql/apolloportaldb.sql
similarity index 100%
rename from configcenter/apollo/go-server/docker/sql/apolloportaldb.sql
rename to integrate_test/configcenter/apollo/docker/sql/apolloportaldb.sql
diff --git a/configcenter/apollo/go-server/tests/integration/userprovider_test.go b/integrate_test/configcenter/apollo/tests/integration/greeterProvider_test.go
similarity index 67%
rename from configcenter/apollo/go-server/tests/integration/userprovider_test.go
rename to integrate_test/configcenter/apollo/tests/integration/greeterProvider_test.go
index 7183e64..992c55d 100644
--- a/configcenter/apollo/go-server/tests/integration/userprovider_test.go
+++ b/integrate_test/configcenter/apollo/tests/integration/greeterProvider_test.go
@@ -28,12 +28,24 @@ import (
"github.com/stretchr/testify/assert"
)
-func TestGetUser(t *testing.T) {
- user := &User{}
- err := userProvider.GetUser(context.TODO(), []interface{}{"A001"}, user)
+import (
+ dubbo3pb "github.com/apache/dubbo-go-samples/api"
+)
+
+func TestSayHello(t *testing.T) {
+ req := &dubbo3pb.HelloRequest{
+ Name: "laurence",
+ }
+
+ reply := &dubbo3pb.User{}
+
+ ctx := context.Background()
+ ctx = context.WithValue(ctx, "tri-req-id", "test_value_XXXXXXXX")
+
+ err := greeterProvider.SayHello(ctx, req, reply)
+
assert.Nil(t, err)
- assert.Equal(t, "A001", user.ID)
- assert.Equal(t, "Alex Stocks", user.Name)
- assert.Equal(t, int32(18), user.Age)
- assert.NotNil(t, user.Time)
+ assert.Equal(t, "Hello laurence", reply.Name)
+ assert.Equal(t, "12345", reply.Id)
+ assert.Equal(t, int32(21), reply.Age)
}
diff --git a/configcenter/apollo/go-server/tests/integration/main_test.go b/integrate_test/configcenter/apollo/tests/integration/main_test.go
similarity index 73%
rename from configcenter/apollo/go-server/tests/integration/main_test.go
rename to integrate_test/configcenter/apollo/tests/integration/main_test.go
index a5c1729..d8a0568 100644
--- a/configcenter/apollo/go-server/tests/integration/main_test.go
+++ b/integrate_test/configcenter/apollo/tests/integration/main_test.go
@@ -20,7 +20,6 @@
package integration
import (
- "context"
"os"
"testing"
"time"
@@ -31,42 +30,23 @@ import (
_ "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/apollo"
_ "dubbo.apache.org/dubbo-go/v3/filter/filter_impl"
_ "dubbo.apache.org/dubbo-go/v3/metadata/service/local"
_ "dubbo.apache.org/dubbo-go/v3/protocol/dubbo"
_ "dubbo.apache.org/dubbo-go/v3/registry/protocol"
_ "dubbo.apache.org/dubbo-go/v3/registry/zookeeper"
+)
- hessian "github.com/apache/dubbo-go-hessian2"
+import (
+ dubbo3pb "github.com/apache/dubbo-go-samples/api"
)
-var userProvider = new(UserProvider)
+var greeterProvider = new(dubbo3pb.GreeterClientImpl)
func TestMain(m *testing.M) {
- config.SetConsumerService(userProvider)
- hessian.RegisterPOJO(&User{})
+ config.SetConsumerService(greeterProvider)
config.Load()
time.Sleep(3 * time.Second)
os.Exit(m.Run())
}
-
-type User struct {
- ID string
- Name string
- Age int32
- Time time.Time
-}
-
-type UserProvider struct {
- GetUser func(ctx context.Context, req []interface{}, rsp *User) error
-}
-
-func (u *UserProvider) Reference() string {
- return "UserProvider"
-}
-
-func (User) JavaClassName() string {
- return "org.apache.dubbo.User"
-}
diff --git a/rpc/dubbo3/pb/dubbogo-grpc/server/dubbogo-server/tests/integration/userprovider_test.go b/rpc/dubbo3/pb/dubbogo-grpc/server/dubbogo-server/tests/integration/userprovider_test.go
index 8100011..6148859 100644
--- a/rpc/dubbo3/pb/dubbogo-grpc/server/dubbogo-server/tests/integration/userprovider_test.go
+++ b/rpc/dubbo3/pb/dubbogo-grpc/server/dubbogo-server/tests/integration/userprovider_test.go
@@ -34,7 +34,7 @@ import (
import (
dubbo3pb "github.com/apache/dubbo-go-samples/general/dubbo3/pb/dubbogo-grpc/protobuf/dubbo3"
- grpcpb "github.com/apache/dubbo-go-samples/general/dubbo3/pb/dubbogo-grpc/server/dubbogo-server/tests/integration/grpc_test_proto"
+ grpcpb "github.com/apache/dubbo-go-samples/general/dubbo3/pb/dubbogo-grpc/server/dubbogo-server/tests/integration/grpc_test_proto"
)
func TestSayHello(t *testing.T) {
@@ -51,8 +51,7 @@ func TestSayHello(t *testing.T) {
assert.Equal(t, int32(21), user.Age)
}
-
-func TestStreamSayHello(t *testing.T){
+func TestStreamSayHello(t *testing.T) {
ctx := context.Background()
ctx = context.WithValue(ctx, tripleConstant.TripleCtxKey(tripleConstant.TripleRequestID), "triple-request-id-demo")
req := dubbo3pb.HelloRequest{
@@ -70,18 +69,18 @@ func TestStreamSayHello(t *testing.T){
rspUser := &dubbo3pb.User{}
err = r.RecvMsg(rspUser)
assert.Nil(t, err)
- assert.Equal(t, "hello laurence",rspUser.Name)
- assert.Equal(t, "123456789",rspUser.Id)
- assert.Equal(t, int32(18),rspUser.Age)
+ assert.Equal(t, "hello laurence", rspUser.Name)
+ assert.Equal(t, "123456789", rspUser.Id)
+ assert.Equal(t, int32(18), rspUser.Age)
err = r.Send(&req)
assert.Nil(t, err)
err = r.RecvMsg(rspUser)
assert.Nil(t, err)
- assert.Equal(t, "hello laurence",rspUser.Name)
- assert.Equal(t, "123456789",rspUser.Id)
- assert.Equal(t, int32(19),rspUser.Age)
+ assert.Equal(t, "hello laurence", rspUser.Name)
+ assert.Equal(t, "123456789", rspUser.Id)
+ assert.Equal(t, int32(19), rspUser.Age)
}
func TestGRPCClientHello(t *testing.T) {
@@ -102,7 +101,7 @@ func TestGRPCClientHello(t *testing.T) {
assert.Equal(t, int32(21), rsp.Age)
}
-func TestGRPCClientStreamSayHello(t *testing.T){
+func TestGRPCClientStreamSayHello(t *testing.T) {
conn, err := grpc.Dial("127.0.0.1:20001", grpc.WithInsecure())
assert.Nil(t, err)
defer conn.Close()
@@ -121,18 +120,16 @@ func TestGRPCClientStreamSayHello(t *testing.T){
rspUser := &grpcpb.User{}
err = clientStream.RecvMsg(rspUser)
assert.Nil(t, err)
- assert.Equal(t, "hello grpc laurence",rspUser.Name)
- assert.Equal(t, "123456789",rspUser.Id)
- assert.Equal(t, int32(18),rspUser.Age)
+ assert.Equal(t, "hello grpc laurence", rspUser.Name)
+ assert.Equal(t, "123456789", rspUser.Id)
+ assert.Equal(t, int32(18), rspUser.Age)
err = clientStream.Send(req)
assert.Nil(t, err)
err = clientStream.RecvMsg(rspUser)
assert.Nil(t, err)
- assert.Equal(t, "hello grpc laurence",rspUser.Name)
- assert.Equal(t, "123456789",rspUser.Id)
- assert.Equal(t, int32(19),rspUser.Age)
+ assert.Equal(t, "hello grpc laurence", rspUser.Name)
+ assert.Equal(t, "123456789", rspUser.Id)
+ assert.Equal(t, int32(19), rspUser.Age)
}
-
-