前言
你好,我是醉墨居士,这篇博客想帮助初学者能够快速入门gRPC,希望能够为你节省宝贵的时间,让时间花费在有价值的事情上
gRPC是什么
gRPC是Google公司基于HTTP/2传输协议与Protobuf 编码协议 开发的跨语言的高性能、开源的远程过程调用(RPC)框架,具有高效的通信机制、跨语言支持、强大的服务定义与拓展能力
Go语言的gRPC技术栈
基于Unix Socket协议或者TCP协议实现HTTP/2协议,在HTTP/2协议的基础上构建了针对Go语言的gRPC核心库,应用程序通过gRPC插件工具生成Stub代码来和gRPC核心库进行交互
准备工作
安装protoc编译器
下载地址:https://github.com/protocolbuffers/protobuf/releases
选择自己对应的操作系统与架构类型的安装包
安装go语言相关的protoc与gRPC插件
go install google.golang.org/protobuf/cmd/protoc-gen-go@v1.28
go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@v1.2
更新 PATH,使 protoc 编译器能够找到插件
export PATH="$PATH:$(go env GOPATH)/bin"
接口定义
通过编写proto文件来定义接口信息,定义服务和消息
// The greeting service definition.
service Greeter {
// Sends a greeting
rpc SayHello (HelloRequest) returns (HelloReply) {
}
}
// The request message containing the user's name.
message HelloRequest {
string name = 1;
}
// The response message containing the greetings
message HelloReply {
string message = 1;
}
代码生成
使用 protoc 编译器将 helloworld.proto 文件编译成 Go 语言的代码 和 gRPC 相关的代码
protoc --go_out=. --go_opt=paths