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的主要内容,如果未能解决你的问题,请参考以下文章

protoc生成gRPC代码和HTTP网关代码

protoc生成gRPC代码和HTTP网关代码

protoc生成gRPC代码和HTTP网关代码

gRPC 实现原理

如何安装golang的grpc插件

grpc教程横向比较与grpc通信模式