grpc是rpc框架的一种,是一个高性能、开源和通用的 RPC 框架,面向移动和 HTTP/2 设计。
以下介绍如何安装grpc框架,编译grpc文件,以及在实际使用过程中碰到的坑。虽然一下示例在golang下实现的,但是grpc同时也支持java,c++等语言。
1.下载代码包:$ go get google.golang.org/grpc(需要翻墙)
还要一种方法:https://golangtc.com/download/package,可以在网页上下载需要的代码包。
下载完成后,将文件解压放在到$GOPATH/src下,在执行
2.下载protc:
和thrift一样,gRPC需要写proto格式的接口文件,在进行编译成指定的语言文件。
所以需要下载protoc的包。
1)下载地址:https://github.com/google/protobuf/releases。
2)windows下安装:
把protoc.exe拷贝到C:\Windows\System32
go install google.golang.org/grpc命令,手动安装一下。
3)测试
4) 编译go的命令:protoc --go_out=输出路径 文件路径/文件名称.proto
编译成功后在对应文件夹下出现helloworld.proto.go文件
注意:
第一个命令编译出来的文件会导致缺少一些接口:
所以生成命令得是 protoc helloworld/helloworld.proto --go_out=plugins=grpc:.
这里要指定插件支持grpc,否则不会生成Service的接口.
如果在文件中引用其他的.proto的文件,需要指定文件夹路径,不然编译时会报:
protoc --proto_path=dbConfigInterface --go_out=plugins=grpc:dbConfigInterface dbConfigInterface\dataSource.proto
5)遇到的问题:
出现这样的情况,需要检查一下$GOPATH/bin下是否有.exe文件,一般情况都是缺少protoc-gen-go.exe文件导致该问题的。
此时就需要手动编译下了,执行命令:go build github.com\golang\protobuf\protoc-gen-go
编译完成后就会在$GOPATH/bin目录下生成protoc-gen-go.exe文件
在把该文件拷贝到go的安装目录下的bin目录
6)golang中使用grpc的简单示例:https://github.com/wjzqx/grpcTest