From b44f57d71576adb790f99436bf22040f28cdd49f Mon Sep 17 00:00:00 2001 From: whalecold Date: Mon, 14 Aug 2023 10:42:28 +0800 Subject: [PATCH] update example and readme --- README.md | 61 +++++++++++++++++++++++++++++++++++++++- README_CN.md | 63 ++++++++++++++++++++++++++++++++++++++++++ example/server/main.go | 20 ++++++++++---- 3 files changed, 138 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 3f03c18..0b6b3aa 100644 --- a/README.md +++ b/README.md @@ -10,7 +10,66 @@ Nacos as config centre. #### Server -TODO +```go +import ( + "context" + "log" + "time" + + "github.com/cloudwego/kitex-examples/kitex_gen/api" + "github.com/cloudwego/kitex-examples/kitex_gen/api/echo" + "github.com/cloudwego/kitex/pkg/klog" + "github.com/cloudwego/kitex/pkg/rpcinfo" + "github.com/cloudwego/kitex/server" + + "github.com/kitex-contrib/registry-nacos/registry" + "github.com/kitex-contrib/config-nacos/nacos" + nacosserver "github.com/kitex-contrib/config-nacos/server" +) + +var _ api.Echo = &EchoImpl{} + +// EchoImpl implements the last service interface defined in the IDL. +type EchoImpl struct{} + +// Echo implements the Echo interface. +func (s *EchoImpl) Echo(ctx context.Context, req *api.Request) (resp *api.Response, err error) { + klog.Info("echo called") + time.Sleep(2 * time.Second) + return &api.Response{Message: req.Message}, nil +} + +func main() { + r, err := registry.NewDefaultNacosRegistry() + if err != nil { + panic(err) + } + nacosClient, err := nacos.DefaultClient() + if err != nil { + panic(err) + } + + serviceName := "echo" + + opts := []server.Option{ + server.WithServerBasicInfo(&rpcinfo.EndpointBasicInfo{ServiceName: serviceName}), + server.WithRegistry(r), + } + + opts = append(opts, nacosserver.NewSuite(serviceName, nacosClient).Options()...) + + svr := echo.NewServer( + new(EchoImpl), + opts..., + ) + if err := svr.Run(); err != nil { + log.Println("server stopped with error:", err) + } else { + log.Println("server stopped") + } +} + +``` #### Client diff --git a/README_CN.md b/README_CN.md index 5053bd9..9f6200b 100644 --- a/README_CN.md +++ b/README_CN.md @@ -8,6 +8,69 @@ ### 基本使用 +#### 服务端 + +```go +import ( + "context" + "log" + "time" + + "github.com/cloudwego/kitex-examples/kitex_gen/api" + "github.com/cloudwego/kitex-examples/kitex_gen/api/echo" + "github.com/cloudwego/kitex/pkg/klog" + "github.com/cloudwego/kitex/pkg/rpcinfo" + "github.com/cloudwego/kitex/server" + + "github.com/kitex-contrib/registry-nacos/registry" + "github.com/kitex-contrib/config-nacos/nacos" + nacosserver "github.com/kitex-contrib/config-nacos/server" +) + +var _ api.Echo = &EchoImpl{} + +// EchoImpl implements the last service interface defined in the IDL. +type EchoImpl struct{} + +// Echo implements the Echo interface. +func (s *EchoImpl) Echo(ctx context.Context, req *api.Request) (resp *api.Response, err error) { + klog.Info("echo called") + time.Sleep(2 * time.Second) + return &api.Response{Message: req.Message}, nil +} + +func main() { + r, err := registry.NewDefaultNacosRegistry() + if err != nil { + panic(err) + } + nacosClient, err := nacos.DefaultClient() + if err != nil { + panic(err) + } + + serviceName := "echo" + + opts := []server.Option{ + server.WithServerBasicInfo(&rpcinfo.EndpointBasicInfo{ServiceName: serviceName}), + server.WithRegistry(r), + } + + opts = append(opts, nacosserver.NewSuite(serviceName, nacosClient).Options()...) + + svr := echo.NewServer( + new(EchoImpl), + opts..., + ) + if err := svr.Run(); err != nil { + log.Println("server stopped with error:", err) + } else { + log.Println("server stopped") + } +} + +``` + #### 客户端 ```go diff --git a/example/server/main.go b/example/server/main.go index 5b14d30..44e9e3d 100644 --- a/example/server/main.go +++ b/example/server/main.go @@ -24,10 +24,11 @@ import ( "github.com/cloudwego/kitex-examples/kitex_gen/api" "github.com/cloudwego/kitex-examples/kitex_gen/api/echo" - "github.com/cloudwego/kitex-examples/middleware/mymiddleware" "github.com/cloudwego/kitex/pkg/klog" "github.com/cloudwego/kitex/pkg/rpcinfo" "github.com/cloudwego/kitex/server" + "github.com/kitex-contrib/config-nacos/nacos" + nacosserver "github.com/kitex-contrib/config-nacos/server" ) var _ api.Echo = &EchoImpl{} @@ -47,12 +48,21 @@ func main() { if err != nil { panic(err) } - svr := echo.NewServer( - new(EchoImpl), + nacosClient, err := nacos.DefaultClient() + if err != nil { + panic(err) + } + + opts := []server.Option{ server.WithServerBasicInfo(&rpcinfo.EndpointBasicInfo{ServiceName: "echo"}), server.WithRegistry(r), - server.WithMiddleware(mymiddleware.CommonMiddleware), - server.WithMiddleware(mymiddleware.ServerMiddleware), + } + + opts = append(opts, nacosserver.NewSuite("echo", nacosClient).Options()...) + + svr := echo.NewServer( + new(EchoImpl), + opts..., ) if err := svr.Run(); err != nil { log.Println("server stopped with error:", err)