首先,GRPC是基于HTTP2来实现的网络传输协议
使用示例
- 编写IDL(接口描述语言),通过IDL来定义我们的服务,保存为hello.proto
syntax = " proto3 " ;
package hello ;
message HelloRequest{
string name=1;
}
message HelloResponse{
string reply=1;
}
service HelloService{
rpc SayHello(HelloRequest) returns(HelloResponse){}
}
- 代码生成工具安装
- 安装protoc工具,下载地址:https://github.com/protocolbuffers/protobuf/releases
- 安装golang扩展, go get github.com/golang/protobuf/protoc-gen-go
- 安装grpc运行库,go get google.golang.org/grpc
protoc是跨语言的,都需要安装,而golang扩展和运行库才是golang专属的
- 生成代码
protoc --go_out=plugins=grpc:. hello.proto
-
实现业务逻辑
其实其中SayHello就是实现了代码生成工具对应结构体的接口或者函数,然后返回只是拼接了一个汉字,该代码类似于java中的service,可以写具体逻辑的
-
实现客户端代码
第二行:grpc.WithInsecure()就是代码不安全的意思,因为此时是测试环境,自己生成的证书肯定是不安全的
需要注意的是,通过代码生成工具产生的文件,必须客户端和服务端都要有一份。
有疑问加站长微信联系(非本文作者)