Protobuf详解

Protobuf详解html

按:前端

新公司前端后端,使用的数据化方式是protobuf (Protocol Buffer)。java

 

一,什么是Protobufpython

官方文档给出的是:c++

a language-neutral, platform-neutral, extensible way of serializing structured data for use in communications protocols, data storage, and more.apache

 

二,Protobuf的优势编程

1,性能好,效率高后端


2,代码生成机制,数据解析类自动生成数据结构


3,支持向后兼容和向前兼容maven


4,支持多种编程语言(java,c++,python)


5,参考文档:http://blog.csdn.net/caisini_vc/article/details/5599468

 

三,Protobuf的缺点

1, 应用不够广


2, 二进制格式致使可读性差(二进制格式)


3, 缺少自描述

官方文档描述以下:for instance, protocol buffers would not be a good way to model a text-based document with markup (e.g. HTML), since you cannot easily interleave structure with text


4, 参考文档:http://blog.csdn.net/caisini_vc/article/details/5599468

 

四,Protobuf环境的搭建

步骤:

1, 安装maven

http://blog.csdn.net/jiangguilong2000/article/details/9284437


2, 下载probuf源码和编译器

http://blog.csdn.net/jiangguilong2000/article/details/9284297


3, 拷贝文件,执行相应mvn install命令。 (protobuf并不提供jar包,须要本身执行命令生成)

Note:

在这个地方遇到了一个问题,错误信息以下:

Failed to execute goal org.apache.maven.plugins:maven-antrun-plugin:1.3:run (generate-sources) on project protobuf-java: An Ant BuildException has occured: Execute failed: java.io.IOException: Cannot run program "..\src\protoc": CreateProcess error=2, ????????? ->

缘由:犯了了一个很2的问题,拷贝protoc.exe文件的路径拷错了。请详细比较步骤2中的路径,必定拷对路径。


4,经过protoc.exe编译addressbook.proto文件

http://blog.sina.com.cn/s/blog_653ac36d0101h9kn.html

 

五,核心概念

1,.proto文件

至关于肯定数据协议,数据结构中存在哪些数据,数据类型是怎么样


2,modifiers

2-1 required 不能够增长或删除的字段,必须初始化

2-2 optional 可选字段,可删除,能够不初始化

2-3 repeated 可重复字段, 对应到java文件里,生成的是List


3,Message

在proto文件里,数据的协议时以Message的形式表现的。


4, Build

生成具体的java类时,例如Person.java,同时会存在build方法。文档的意思是对于转化后的数据,具备惟一性,build提供了便利的方法来初始化这些数据。

 

六,其余

暂无

相关文章
相关标签/搜索