搭建网站的流程和方法,用dw做旅游网站的方法,上海网站制作网络推广,html素材库文章目录 基本环境处理编译pb接口开启rpc调用业务观察qa1 能取出protoc里面的字段值吗#xff1f; 基本环境处理
https://cn.dubbo.apache.org/zh-cn/overview/quickstart/go/install/ 这里没有 protoc-gen-go --version
执行 go get -u github.com/golang/protobuf/protoc… 文章目录 基本环境处理编译pb接口开启rpc调用业务观察qa1 能取出protoc里面的字段值吗 基本环境处理
https://cn.dubbo.apache.org/zh-cn/overview/quickstart/go/install/ 这里没有 protoc-gen-go --version
执行 go get -u github.com/golang/protobuf/protoc-gen-go进入到这个目录执行
go buildgo install这样就会出现在 go/bin 目录里面了如果已经增加了这个环境变量了就可以使用该命令了 分别验证
protoc --versionlibprotoc 22.2 protoc-gen-go-triple --versionprotoc-gen-go-triple 1.0.8 protoc-gen-go --versionprotoc-gen-go: unknown argument “–version” (this program should be run by protoc, not directly) 这个错误先不管。
编译pb接口
protoc --go_out. --go-triple_out. ./samples_api.proto–go_out. 用到protoc-gen-go插件生成文件到当前目录–go-triple_out. 使用 protoc-gen-go-triple插件生成文件到当前目录
当然默认的样例工程其实已经包含了编译好的文件
开启rpc调用
回到项目根目录
go mod tidy分别启动server端和client端
cd go-server/cmdgo run .cd go-client/cmdgo run .服务端效果 客户端效果 业务观察 这个的提供的样例模块
protoc的定义是
message HelloRequest {string name 1;
}翻译出来的go代码对应核心的地方就是这里
client代码增加注释
package mainimport (context
)import (dubbo.apache.org/dubbo-go/v3/common/loggerdubbo.apache.org/dubbo-go/v3/config_ dubbo.apache.org/dubbo-go/v3/importshelloworld/api
)// 创建一个grpc的实例
var grpcGreeterImpl new(api.GreeterClientImpl)// export DUBBO_GO_CONFIG_PATH PATH_TO_SAMPLES/helloworld/go-client/conf/dubbogo.yaml
func main() {config.SetConsumerService(grpcGreeterImpl)if err : config.Load(); err ! nil {panic(err)}logger.Info(start to test dubbo)// 传递参数req : api.HelloRequest{Name: laurence,}// grpc的调用reply, err : grpcGreeterImpl.SayHello(context.Background(), req)if err ! nil {logger.Error(err)}logger.Infof(client response result: %v\n, reply) // reply是具体响应的信息
}qa1 能取出protoc里面的字段值吗
可以直接用reply.xxx 取值
package mainimport (context
)import (dubbo.apache.org/dubbo-go/v3/common/loggerdubbo.apache.org/dubbo-go/v3/config_ dubbo.apache.org/dubbo-go/v3/importshelloworld/api
)// 创建一个grpc的实例
var grpcGreeterImpl new(api.GreeterClientImpl)// export DUBBO_GO_CONFIG_PATH PATH_TO_SAMPLES/helloworld/go-client/conf/dubbogo.yaml
func main() {config.SetConsumerService(grpcGreeterImpl)if err : config.Load(); err ! nil {panic(err)}logger.Info(start to test dubbo)// 传递参数req : api.HelloRequest{Name: laurence,}// grpc的调用reply, err : grpcGreeterImpl.SayHello(context.Background(), req)if err ! nil {logger.Error(err)}logger.Infof(client response result: %v\n, reply) // reply是具体响应的信息logger.Infof(Name is %v \n, reply.Name)logger.Infof(Age is %v \n, reply.Age)logger.Infof(Id is %v \n, reply.Id)
}