章节目录
1、什么是Prot ocol Buffers
2、为什么使用Protocol Buffers
2.1 特点介绍
2.2 数据交互xml、json、protobuf格式比较
3、window下安装protobuf
3.1 部署准备工作
3.2 配置环境变量
1 什么是Prot ocol Buffers
protocolbuffer(以下简称PB)是google 的一种数据交换的格式,它独立于语言,独立于平台。google 提供了多种语言的实现:java、c#、c++、go 和python,每一种实现都包含了相应语言的编译器以及库文件。由于它是一种二进制的格式,比使用 xml进行数据交换快许多。可以把它用于分布式应用之间的数据通信或者异构环境下的数据交换。作为一种效率和兼容性都很优秀的二进制数据传输格式,可以用于诸如网络传输、配置文件、数据存储等诸多领域。
2 为什么使用Protocol Buffers
Protobuf是由谷歌开源而来,在谷歌内部久经考验。它将数据结构以.proto文件进行描述,通过代码生成工具可以生成对应数据结构的POJO对象和Protobuf相关的方法和属性。
2.1 特点介绍
- 结构化数据存储格式(XML,JSON等)
- 高效的编解码性能
- 语言无关、平台无关、扩展性好
- 相对于其它protobuf更具有优势:
序列化后体积相比Json和XML很小,适合网络传输
支持跨平台多语言
消息格式升级和兼容性还不错
序列化反序列化速度很快,快于Json的处理速度
2.2 数据交互xml、json、protobuf格式比较
-
json: 一般的web项目中,最流行的主要还是json。因为浏览器对于json数据支持非常好,有很多内建的函数支持。
-
xml: 在webservice中应用最为广泛,但是相比于json,它的数据更加冗余,因为需要成对的闭合标签。json使用了键值对的方式,不仅压缩了一定的数据空间,同时也具有可读性。
-
protobuf:是后起之秀,是谷歌开源的一种数据格式,适合高性能,对响应速度有要求的数据传输场景。因为profobuf是二进制数据格式,需要编码和解码。数据本身不具有可读性。因此只能反序列化之后得到真正可读的数据。
结论: 在一个需要大量的数据传输的场景中,如果数据量很大,那么选择protobuf可以明显的减少数据量,减少网络IO,从而减少网络传输所消耗的时间。因而,对于打造一款高性能的通讯服务器来说,protobuf 传输格式,是最佳的解决方案。
3 window下安装protobuf
3.1 部署准备工作
所谓工欲善其事必先利其器,搭建环境都是学习一门语言知识最基础的入门,搭建protocol buffer
需要准备下载的资料如下:
- 下载protobuf操作系统版本,本地环境window 10 64位,所以下载protoc-3.9.0-win64.zip
- 下载protobuf构建平台版本,这里主要针对Java版本,所以下载 protobuf-java-3.9.0.zip
- 下载maven包,这块主要为了获取编译生成jar包,用于项目开发使用,具体可以网上查找maven安装方法,如果项目是基于maven或gradle,可以不用安装maven环境
3.2 配置环境变量
配置环境变量如下
image.png在path目录下配置%protobuf_home%\bin; 配置完毕后,可在CMD中输入
protoc --version以及
mvn -version`,可看到版本号,如下所示说明配置成功。
网友评论