Hero Image
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 目录说明