一、grpc的golang环境配置
protoc的安装比较简单,golang使用protoc-gen-go进行protobuf生成golang代码,由于国内某种原因,因此需要进行以下的设置:
export http_proxy=http://127.0.0.1:1087
export https_proxy=http://127.0.0.1:1087
使go install走对应的代理,然后参考:https://github.com/grpc/grpc-go 进行相关依赖的按照
然后书写grpc的protbuf文件,并用protoc生成即可。
二、grpc的介绍
gRPC主要有4种请求和响应模式,分别是简单模式(Simple RPC)、服务端流式(Server-side streaming RPC)、客户端流式(Client-side streaming RPC)、和双向流式(Bidirectional streaming RPC)。
简单模式(Simple RPC):客户端发起请求并等待服务端响应。
服务端流式(Server-side streaming RPC):客户端发送请求到服务器,拿到一个流去读取返回的消息序列。 客户端读取返回的流,直到里面没有任何消息。
客户端流式(Client-side streaming RPC):与服务端数据流模式相反,这次是客户端源源不断的向服务端发送数据流,而在发送结束后,由服务端返回一个响应。
双向流式(Bidirectional streaming RPC):双方使用读写流去发送一个消息序列,两个流独立操作,双方可以同时发送和同时接收。
三、grpc中的protobuf简单介绍
protobuf中对应到grpc的使用,主要有rpc变量用以声明方法为rpc的方法、stream 对象表明传输是流式的(客户端/服务端),其他方面的格式无太大的特殊
rpc ListFeatures(request) returns (stream response) {}