golang实现grpc的tcp示例

家资是何物,积帙列梁梠。这篇文章主要讲述golang实现grpc的tcp示例相关的知识,希望能为你提供帮助。
                                    Golang实现GRPC的tcp示例(windows环境为例)
背书:rpc是一个高效的序列化工具类似json,xml,grpc是google开发的跨平台和语言的rpc框架
【golang实现grpc的tcp示例】1.安装grpc包:
go get github.com/golang/protobuf/proto
go get google.golang.org/grpc
go get google.golang.org/protobuf/cmd/protoc-gen-go
go install google.golang.org/protobuf/cmd/protoc-gen-go
go get google.golang.org/grpc/cmd/protoc-gen-go-grpc
go install google.golang.org/grpc/cmd/protoc-gen-go-grpc
上面安装好后,会在GOPATH/bin下生成protoc-gen-go.exe
注意:GOPATH 不明白是啥玩意的请自行百度


2.下载protoc.exe到GOPATH的bin目录:
windows平台编译受限,很难自己手动编译,直接去网站下载一个,
地址:https://github.com/protocolbuffers/protobuf/releases/tag/v3.9.0
,同样放在GOPATH/bin下


3.编写proto描述文件:
  项目包路径:local.com/blog 一个博客项目为例,
这里随便写一个:hello.proto,放在local.com/blog/proto文件目录下,提供一个SayHello服务:

4. 编译生成.pb.go文件
使用命令生成编译后的go文件(进入proto文件目录),执行如下两个命令:
protoc --go_out=. hello.proto
protoc --go-grpc_out=. hello.proto
不出问题的话会生成如下两个go文件:

  第一个包含了服务的定义,第二个包含请求和返回参数的定义。这两个文件客户端和服务端都需要直接拷贝给客户端服务和服务端服务即可正常使用。
5.实现grpc的服务端(这里以tcp协议为例):


6.grpc客户端(比较简单):

Grpc的认证,拦截器,trace调用追踪,http服务等这里不做介绍,可以参考:
??https://www.topgoer.com/%E5%BE%AE%E6%9C%8D%E5%8A%A1/gRPC/OpenSSL%E5%AE%89%E8%A3%85.html??







    推荐阅读