protobuf(一)认识protobuf

认识protobuf

1、protobuf介绍

  1. Protocol Buffers ,是Google公司开发的一种数据传输格式,简称为protobuf;
  2. 与Json、xml类似,但是protobuf传输效率更高;
  3. protobuf常用于数据传输(常用于RPC调用)、存储;
  4. protobuf还可跨平台、跨语言;
  5. 文件命名后缀为xxx.proto;

PS:具体定义,可参考百度百科

2、protobuf语法

实际例子如下:

syntax = "proto3";  //指定使用proto的语法
 
message LoginRequest { //消息格式
  repeated string name = 1;  //修饰符 类型 变量名 = 数字标识符;
  int32 password = 2;
}
  • 数字标识符是用来在消息的二进制格式中识别各个字段的,一旦开始使用就不能够再改变
  • 修饰符:
    • repeat:字段可以重复任意多次,顺序会保留
    • singular:字段应有0或1个

PS:以上描述的是一些基础语法,更多的语法知识点此连接

3、为什么使用protobuf传输数据

因为它比常用的通信数据格式json,xml效率高!!
目前我GET到原因有以下两点:(若还有其他原因,请在评论区补充以下~)

  • json和xml文件中都有很多冗余的字符;如json有,、{、}等;而protobuf直接舍去这些冗余字符,并利用数字标识符来确定数据位置,去节省存储空间压缩数据
  • protobuf可以根据实际需求去采用不同的长度存储数据,譬如int32,int64等

4、简单实践-通过java使用protobuf

1. 环境:MAC OS
2. 操作软件:IDEA 2020.2.3

a、首先,下载protobuf编译器

  1. 下载:https://github.com/protocolbuffers/protobuf/releases/
    在这里插入图片描述

  2. 下载后解压,在解压后的工作目录下输入命令

./configure --prefix=/usr/local/protobuf
  1. 完成后,输入命令
make
  1. 编译完成后,输入命令
make install
  1. 检查是否安装成功,利用下面命令
protoc --version

若出现你所下载版本即安装成功
在这里插入图片描述

b、在idea中配置protobuf环境

  1. 下载插件
    在这里插入图片描述
  2. 建立一个项目,创建一个存放proto文件的目录
  3. 配置编译.proto的规则
    点击Tools->Configure GenProtobuf
    在这里插入图片描述
    配置如下:
    在这里插入图片描述

c、具体实践

  1. 引入依赖
        <dependency>
            <groupId>com.google.protobuf</groupId>
            <artifactId>protobuf-java</artifactId>
            <version>3.14.0</version>
        </dependency>

  1. 在所创建的目录下新建.proto文件,基本格式如下:
    在这里插入图片描述

  2. 右击此文件,选择quick gen protobuf here编译此文件

  3. 编译成功后,当前目录下会生成了.Java文件

  4. 测试
    i. 创建实例
    在这里插入图片描述
    在这里插入图片描述
    ii. 序列化
    在这里插入图片描述
    iii. 反序列化
    在这里插入图片描述

  5. 运行结果如下图:
    在这里插入图片描述

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值