使用protocol buffers优缺点分析

简介:

很早就听说过PB(protocol buffers的简称),但从未实际地去了解,最近动手对它进行了初步了了解和使用,由于它长得和RPC/IDL相似,加上以前有参与过使用C++实现过RPC的项目经验,所以容易理解起来比较顺畅,网上也有不少基于PB的RPC实现。
为什么要去了解PB?一是因为它如同MapReduce一样,属于Google出品,口碑好也很受欢迎;其次是想将它引入mooon的实现中,问题也就来了,为啥要用它?能带来什么好处?会存在什么问题?

好处显而易见,网络消息全丢给它,省去了很多编解码的麻烦和工作量,而且也易于维护,如果系统需要跨平台或语言,那非它莫属了(不和thrift等比)。但是增加了对第三方的依赖,而且是一个比第三库更强的依赖,因为还需要使用到它的.proto定义和编译器。虽然它的效率比XML/JSON等高,但肯定比不过直接使用消息结构。纠结中,最纠结的还是是否需要产生对它的依赖,要知道刚解除对log4cxx的依赖不久。

计划继续多了解protocol buffers,然后决定是否使用。


 




    本文转自eyjian 51CTO博客,原文链接:http://blog.51cto.com/mooon/909747,如需转载请自行联系原作者



 

相关文章
|
4月前
|
存储 开发工具 git
如何构建 Protocol Buffers(protobuf)并解决常见问题
如何构建 Protocol Buffers(protobuf)并解决常见问题
50 0
|
6月前
|
存储 编译器 Go
Protocol Buffers [protobuf]
Protocol Buffers [protobuf]
31 0
|
存储 JSON Java
Google Protocol Buffer
Google Protocol Buffer
121 0
|
XML Dart Java
Protocol Buffers
protobuf它是Google提供的一个技术, 一个类库, 也可以说是一套规范, 学java的人都知道java有自己的序列化机制, 对不同的java程序来说,他们可以使用同一种序列化机制进行数据的传递, 但是java的序列化机制并不适用于其他的语言比如python
205 0
|
XML Java 数据格式
Protocol Buffers 开发者指南
欢迎来到 protocol buffers 的开发者指南。protocol buffers 是一个语言中立,平台中立针对通讯协议,数据存储和其他领域中对结构化数据进行序列化的扩展方法。 本文档主要针对的是 Java,C++ 或 Python 的开发人员希望在开发的应用程序中使用 Protocol Buffers。
3058 0
protocol buffer的高效编码方式
protocol buffer的高效编码方式
|
存储 数据格式
Protocol Buffers 简介
本文档的 Protocol Buffer 的中文文档使用的是 Asciidoctor 进行编排的 http://docs.ossez.com/protocol-buffers-docs/index.html(本 WIKI 中的内容将会与在线发布的版本同步) Google Protocol Buffer( 简称 Protobuf) 是 Google 公司内部的混合语言数据标准,目前已经正在使用的有超过 48,162 种报文格式定义和超过 12,183 个 .proto 文件。
1637 0
|
XML 分布式计算 MaxCompute
|
存储 Java API
Netty In Action中文版 - 第五章:Buffers(缓冲)
Netty In Action中文版 - 第五章:Buffers(缓冲) 本章介绍 ByteBuf ByteBufHolder ByteBufAllocator 使用这些接口分配缓冲和执行操作 每当你需要传输数据时,它必须包含一个缓冲区。
1436 0