You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@dubbo.apache.org by al...@apache.org on 2022/03/21 05:01:17 UTC

[dubbo-go-samples] branch master updated: Config merge samples (#318)

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

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


The following commit(s) were added to refs/heads/master by this push:
     new f0d1e10  Config merge samples (#318)
f0d1e10 is described below

commit f0d1e1076397a4736de080ffb16cd0963c8c2f9d
Author: Nanno <64...@users.noreply.github.com>
AuthorDate: Sun Mar 20 22:01:12 2022 -0700

    Config merge samples (#318)
    
    * add config merge samples
    
    * move dir
    
    * rm Readme
    
    * fix
---
 config-api/config-merge/go-client/cmd/client.go    | 56 ++++++++++++++
 .../config-merge/go-client/conf/dubbogo-local.yml  | 14 ++++
 config-api/config-merge/go-client/conf/dubbogo.yml | 13 ++++
 config-api/config-merge/go-server/cmd/server.go    | 87 ++++++++++++++++++++++
 config-api/config-merge/go-server/conf/dubbogo.yml | 13 ++++
 5 files changed, 183 insertions(+)

diff --git a/config-api/config-merge/go-client/cmd/client.go b/config-api/config-merge/go-client/cmd/client.go
new file mode 100644
index 0000000..9070592
--- /dev/null
+++ b/config-api/config-merge/go-client/cmd/client.go
@@ -0,0 +1,56 @@
+/*
+ * 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 main
+
+import (
+	"context"
+	"fmt"
+)
+
+import (
+	"dubbo.apache.org/dubbo-go/v3/common/logger"
+	"dubbo.apache.org/dubbo-go/v3/config"
+	_ "dubbo.apache.org/dubbo-go/v3/imports"
+)
+
+import (
+	"github.com/apache/dubbo-go-samples/api"
+)
+
+var grpcGreeterImpl = new(api.GreeterClientImpl)
+
+// export DUBBO_GO_CONFIG_PATH= PATH_TO_SAMPLES/helloworld/go-client/conf/dubbogo.yml
+func main() {
+	config.SetConsumerService(grpcGreeterImpl)
+	if err := config.Load(); err != nil {
+		panic(err)
+	}
+	registries := config.GetRootConfig().Registries
+	fmt.Printf("\n!start test config-merge:\n")
+	fmt.Printf("registries[\"demoZK\"]: %v\n", registries["demoZK"])
+	fmt.Printf("config.GetDefineValue(\"test-config\", false): %v\n\n", config.GetDefineValue("test-config", false))
+	logger.Info("start to test dubbo")
+	req := &api.HelloRequest{
+		Name: "laurence",
+	}
+	reply, err := grpcGreeterImpl.SayHello(context.Background(), req)
+	if err != nil {
+		logger.Error(err)
+	}
+	logger.Infof("client response result: %v\n", reply)
+}
diff --git a/config-api/config-merge/go-client/conf/dubbogo-local.yml b/config-api/config-merge/go-client/conf/dubbogo-local.yml
new file mode 100644
index 0000000..f70804e
--- /dev/null
+++ b/config-api/config-merge/go-client/conf/dubbogo-local.yml
@@ -0,0 +1,14 @@
+dubbo:
+  custom:
+    config-map:
+      test-config: true
+  registries:
+    demoZK:
+      protocol: zookeeper
+      timeout: 10s
+      address: 127.0.0.1:2181
+  consumer:
+    references:
+      GreeterClientImpl:
+        protocol: tri
+        interface: com.apache.dubbo.sample.basic.IGreeter # must be compatible with grpc or dubbo-java
\ No newline at end of file
diff --git a/config-api/config-merge/go-client/conf/dubbogo.yml b/config-api/config-merge/go-client/conf/dubbogo.yml
new file mode 100644
index 0000000..a3af671
--- /dev/null
+++ b/config-api/config-merge/go-client/conf/dubbogo.yml
@@ -0,0 +1,13 @@
+dubbo:
+  profiles:
+    active: local
+  registries:
+    demoZK:
+      protocol: zookeeper
+      timeout: 3s
+      address: 127.0.0.1:2181
+  consumer:
+    references:
+      GreeterClientImpl:
+        protocol: tri
+        interface: com.apache.dubbo.sample.basic.IGreeter # must be compatible with grpc or dubbo-java
\ No newline at end of file
diff --git a/config-api/config-merge/go-server/cmd/server.go b/config-api/config-merge/go-server/cmd/server.go
new file mode 100644
index 0000000..41b0b1b
--- /dev/null
+++ b/config-api/config-merge/go-server/cmd/server.go
@@ -0,0 +1,87 @@
+/*
+ * 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 main
+
+import (
+	"context"
+)
+
+import (
+	"dubbo.apache.org/dubbo-go/v3/common/logger"
+	"dubbo.apache.org/dubbo-go/v3/config"
+	_ "dubbo.apache.org/dubbo-go/v3/imports"
+)
+
+import (
+	"github.com/apache/dubbo-go-samples/api"
+)
+
+type GreeterProvider struct {
+	api.UnimplementedGreeterServer
+}
+
+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 (s *GreeterProvider) SayHelloStream(svr api.Greeter_SayHelloStreamServer) error {
+	c, err := svr.Recv()
+	if err != nil {
+		return err
+	}
+	logger.Infof("Dubbo-go3 GreeterProvider recv 1 user, name = %s\n", c.Name)
+	c2, err := svr.Recv()
+	if err != nil {
+		return err
+	}
+	logger.Infof("Dubbo-go3 GreeterProvider recv 2 user, name = %s\n", c2.Name)
+
+	err = svr.Send(&api.User{
+		Name: "hello " + c.Name,
+		Age:  18,
+		Id:   "123456789",
+	})
+	if err != nil {
+		return err
+	}
+	c3, err := svr.Recv()
+	if err != nil {
+		return err
+	}
+	logger.Infof("Dubbo-go3 GreeterProvider recv 3 user, name = %s\n", c3.Name)
+
+	err = svr.Send(&api.User{
+		Name: "hello " + c2.Name,
+		Age:  19,
+		Id:   "123456789",
+	})
+	if err != nil {
+		return err
+	}
+	return nil
+}
+
+// export DUBBO_GO_CONFIG_PATH= PATH_TO_SAMPLES/helloworld/go-server/conf/dubbogo.yml
+func main() {
+	config.SetProviderService(&GreeterProvider{})
+	if err := config.Load(); err != nil {
+		panic(err)
+	}
+	select {}
+}
diff --git a/config-api/config-merge/go-server/conf/dubbogo.yml b/config-api/config-merge/go-server/conf/dubbogo.yml
new file mode 100644
index 0000000..1f1bb4a
--- /dev/null
+++ b/config-api/config-merge/go-server/conf/dubbogo.yml
@@ -0,0 +1,13 @@
+dubbo:
+  registries:
+    demoZK:
+      protocol: zookeeper
+      address: 127.0.0.1:2181
+  protocols:
+    triple:
+      name: tri
+      port: 20000
+  provider:
+    services:
+      GreeterProvider:
+        interface: com.apache.dubbo.sample.basic.IGreeter # must be compatible with grpc or dubbo-java
\ No newline at end of file