springboot 集成 grpc 和 protobuf(一) | grpc和protobuf 的简介及本地使用


springboot 集成 grpc 和 protobuf(一) | grpc和protobuf 的简介及本地使用


一,grpc简介:

GRPC是google开源的一个高性能、跨语言的RPC框架,基于HTTP2协议,基于protobuf 3.x,基于Netty 4.x +。GRPC与thrift、avro-rpc等其实在总体原理上并没有太大的区别。

使用需知:

  1. 需要使用protobuf定义接口,即.proto文件

  2. 然后使用compile工具生成特定语言的执行代码,比如JAVA、C/C++、Python等。类似于thrift,为了解决跨语言问题。

  3. 启动一个Server端,server端通过侦听指定的port,来等待Client链接请求,通常使用Netty来构建,GRPC内置了Netty的支持。

  4. 启动一个或者多个Client端,Client也是基于Netty,Client通过与Server建立TCP常链接,并发送请求;Request与Response均被封装成HTTP2的stream Frame,通过Netty Channel进行交互。

1.1 使用proto3优点:
  1. Protocol Buffers是一个跨语言、跨平台的具有可扩展机制的序列化数据工具。
  2. 传输和解析速度比 xml 更快更好用。
1.2 如何跨平台使用:

首先使用google规定的proto协议定义语言,之后使用proto的工具对代码进行“编译”,比如:protobuf-java,protobuf-python等,生成对应的各个平台的源代码,然后使用这些源代码进行操作。


二、下载安装

2.1. 下载: protoc-3.1.0-win32.zip(如下图)
  • protoc下载地址: https://github.com/google/protobuf/releases
    在这里插入图片描述
2.2. 配置环境变量

计算机->属性->高级系统设置->环境变量->系统变量->选择path,在最后面加上你的安装路径

比如我的

;D:\develop\protoc-3.6.1-win32\bin

配置完成后打开CMD命令窗口输入:

protoc --version

三、编译测试

3.1 我的文件:data.proto
syntax = "proto3";

package example;

service FormatData {	
  rpc DoFormat(Data) returns (Data){}  //这里后面会用到,注意哦
  // DoForma 客户端调用服务端使用的方法
  // Data 消息体,跟实体类类似,传参和返回都是一个实体接收
}

message Data {
  string text = 1;  // 1:代表第一个参数
  string flag = 2;  // 2:代表第二个参数
}
3.2 放入刚才安装的 D:\develop\protoc-3.6.1-win32\bin目录

输入cmd 命令定位到安装的bin目录下:输入以下cmd命令

protoc.exe --java_out=./ ./data.proto

然后就生成下图文件
在这里插入图片描述

使用的话直接把刚刚生成的文件拷贝到项目的目录即可


四、扩展

  • 注意:本地这样编译只有一个类,一开始我以为只有一个,放进项目死活不行,后面直接在项目中compile会生成两个
  • 以上只是简单的在本地编译,开发中我们所使用的是直接跟项目走的,不会单独编译然后又copy到项目。项目中的直接使用请看下一篇。

下一篇: springboot 集成 grpc 和 protobuf(二) | 在实际项目中使用 grpc 和 protobuf.


欢迎关注公众号:慌途L
后面会慢慢将文章迁移至公众号,也是方便在没有电脑的情况下可以进行翻阅,更新的话会两边同时更新,大家不用担心!
在这里插入图片描述


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值