grpc-stream go版简解
基础知识介绍 gRPC (gRPCRemote Procedure Calls) 是Google发起的一个开源的远程过程调用 (Remote procedure call) 系统。该系统基于 HTTP/2 协议传输,使用Protocol Buffers 工具来序列化结构化数据。
protobuf
protobuf 全称 Google Protocol Buffers,是 google 开发的的一套用于数据存储,网络通信时用于协议编解码的工具库,proto 文件是以 xxx.proto 命名。
stream
Stream 顾名思义就是一种流,可以源源不断的推送数据,很适合大数据传输,或者服务端和客户端长时间数据交互的场景。
使用场景
1:股票app:客户端向服务端发送一个股票代码,服务端就把该股票的实时数据源源不断的返回给客户端
2:数据上传:几百万的数据上传处理,若普通rpc则需要全部传输成功后才进行处理,而stream则会再接受第一条数据后就开始处理
3:数据交换:比如LOL,王者荣耀等竞技游戏,client和server之间需要非常频繁地交换数据
ServiceAPI类型
gRPC 中的 Service API 有如下4种类型:
SimpleAPI:普通rpc ServerStreaming:服务器流式响应 ClientStreaming:客户端流式发送 BidirectionalStreaming:双向流 操作实战 代码说明:通过传入名字查询对应的结果
下载protoc
wget https://github.com/protocolbuffers/protobuf/releases/download/v21.2/protoc-21.2-linux-x86_64.zip unzip protoc-21.2-linux-x86_64.zip mv protoc-21.2-linux-x86_64 /usr/local/protoc 写入环境变量
将protoc命令写入path中,编辑 /etc/profile文件
export PROTOC_HOME=/usr/local/protoc export PATH=$PROTOC_HOME/bin:$PATH 目录说明