grpc
Posted sunlong88
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了grpc相关的知识,希望对你有一定的参考价值。
整个过程就是:
1、客户端 发送 数据(以字节流的方式)
2、服务端接收,并解析。 根据 约定 知道要知道执行什么。然后把结果返回客户端 RPC就是 把 1、上述过程封装下,使其操作更加优化 2、使用一些大家都认可的协议 使其规范化 3、做成一些框架。直接或间接产生利益
刚才我们讲的“赚钱利器” 其中一个框架就是一款语言中立、平台中立、开源的远程过程调用(RPC)框架 gRpc 。
支持java、c++、golang、php多个语言版本。 我们只需要关心 golang版本 https://github.com/grpc/grpc-go
创建一个空项目,使用go module的方式 安装 go get -u google.golang.org/grpc 安装不了
请戳这里看方法: http://www.hishenyi.com/archives/1420
Protobuf
Google Protocol Buffer( 简称 Protobuf) 轻便高效的序列化数据结构的协议,可以用于网络通信和数据存储。
特点:性能高、传输快、维护方便,反正就是各种好,各种棒 一些第三方rpc库都会支持protobuf
github地址: https://github.com/protocolbuffers/protobuf golang库所属地址a https://github.com/golang/protobuf
安装
本课时演示在windows里的安装 第一步来到这: 查看 https://github.com/protocolbuffers/protobuf/blob/master/src/README.md#c-installation---windows 继而安装https://github.com/protocolbuffers/protobuf/releases/latest (仅做学习使用 )
解压后放到 某个 你喜欢的文件夹中(不可以有中文,不能有空格,没有为什么)
譬如本课时放在了D:systoolprotoc39 然后把 D:systoolprotoc39in 加入环境变量 这是protobuf编译器,
将.proto文件,转译成protobuf的原生数据结构 protobuf相关文档 https://developers.google.com/protocol-buffers/docs/gotutorial
安装插件
go get github.com/golang/protobuf/protoc-gen-go 此时会在你的GOPATH 的bin目录下生成可执行文件. protobuf的编译器插件protoc-gen-go 等下我们执行protoc 命令时 就会自动调用这个插件
创建文件
传一个ProdService.proto (注意 goland可以下载插件,请根据提示下载)
创建中间文件
syntax="proto3"; package services; message ProdRequest { int32 prod_id =1; //传入的商品ID } message ProdResponse{ int32 prod_stock=1;//商品库存 } 然后执行 protoc --go_out=../services/ Prod.proto
以上是关于grpc的主要内容,如果未能解决你的问题,请参考以下文章