grpc第四篇:grpc-go、grpc-java桩代码生成及服务端、客户端开发

假设有一个proto文件,内容同https://github.com/grpc/grpc-go/blob/master/examples/helloworld/helloworld/helloworld.proto,如何生成golang或者java的桩代码?

生成golang桩代码:

1、安装protoc

在mac上执行:brew install protobuf

2、安装protoc-gen-go和protoc-gen-go-grpc

go install google.golang.org/protobuf/cmd/protoc-gen-go@v1.31.0

go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@v1.3.0

go install安装完之后,可以在GOPATH/bin目录中看到安装的二进制文件。

3、执行生成代码命令:

protoc --proto_path=/path --go_out=. --go-grpc_out=. xxx.proto

其中--proto_path用于指定proto文件所在目录,--go_out用于指定生成xxx.pb.go文件的目录,--go-grpc_out用于指定生成xxx_grpc.pb.go文件的目录。

执行完后,会生成xxx.pb.go和xxx_grpc.pb.go文件。

 

生成java桩代码:

1、安装protoc

2、安装protoc-gen-grpc-java

从https://repo.maven.apache.org/maven2/io/grpc/protoc-gen-grpc-java/下载最新版的protoc-gen-grpc-java,chmod 777授权

3、执行命令生成service相关类:

protoc --proto_path=/path --plugin=protoc-gen-grpc-java=/path/protoc-gen-grpc-java-1.56.1-osx-x86_64 --grpc-java_out=. xxx.proto

会生成xxxGrpc.java文件,其中xxx是proto文件中service的名字。

4、执行命令生成message相关类:

protoc --java_out=. /path/xxx.proto

会生成多个java文件。

 

也可以用idea生成,参考

https://blog.51cto.com/humorchen/2986133

 

服务端、客户端开发可参考https://github.com/grpc/grpc-go/tree/master/examples/helloworld

服务端跟普通http web服务一样,启动后也是监听某个端口的,客户端通过这个端口与服务端进行交互。

posted on 2019-11-26 20:55  koushr  阅读(248)  评论(0编辑  收藏  举报

导航