RabbitMQ消息队列的小伙伴(八): ProtoBuf(Google Protocol Buffer)
2016-04-06 19:29
417 查看
什么是ProtoBuf?
一种轻便高效的结构化数据存储格式,可以用于结构化数据串行化,或者说序列化。它很适合做数据存储或 RPC 数据交换格式。可用于通讯协议、数据存储等领域的语言无关、平台无关、可扩展的序列化结构数据格式。目前提供了 C++、Java、Python 三种语言的 API。
它可以作为RabbitMQ的Message的数据格式进行传输,由于是结构化的数据,这样就极大的方便了Consumer的数据高效处理。当然了你可能说使用XML不也可以吗?与XML相比,ProtoBuf有以下优势:
简单
size小了3-10倍
速度快乐20-100倍
易于编程
减小了语义的歧义
当然了,的确还有很多类似的技术,比如JSON,Thrift等等,和他们相比,ProtoBuf的优势或者劣势在哪里?简单说来,ProtoBuf就是简单,快。以测试为证:项目 thrift-protobuf-compare 比较了这些类似的技术,下图 显示了该项目的一项测试结果。
在占用空间上的性能比较:
由此可见,ProtoBuf具有速度和空间的优势,使得它现在应用非常广泛。比如Hadoop就使用了它。
更多信息,请阅 http://www.ibm.com/developerworks/cn/linux/l-cn-gpb/。
一种轻便高效的结构化数据存储格式,可以用于结构化数据串行化,或者说序列化。它很适合做数据存储或 RPC 数据交换格式。可用于通讯协议、数据存储等领域的语言无关、平台无关、可扩展的序列化结构数据格式。目前提供了 C++、Java、Python 三种语言的 API。
它可以作为RabbitMQ的Message的数据格式进行传输,由于是结构化的数据,这样就极大的方便了Consumer的数据高效处理。当然了你可能说使用XML不也可以吗?与XML相比,ProtoBuf有以下优势:
简单
size小了3-10倍
速度快乐20-100倍
易于编程
减小了语义的歧义
当然了,的确还有很多类似的技术,比如JSON,Thrift等等,和他们相比,ProtoBuf的优势或者劣势在哪里?简单说来,ProtoBuf就是简单,快。以测试为证:项目 thrift-protobuf-compare 比较了这些类似的技术,下图 显示了该项目的一项测试结果。
在占用空间上的性能比较:
由此可见,ProtoBuf具有速度和空间的优势,使得它现在应用非常广泛。比如Hadoop就使用了它。
更多信息,请阅 http://www.ibm.com/developerworks/cn/linux/l-cn-gpb/。
相关文章推荐
- Google Web Designer(HTML5网页可视化设计)
- 文件上传_JSCH
- html5 列表
- 随机数的组合问题(JavaScript描述)
- ReactNative学习十二-React-Native-Viewpager
- Extjs6问题——grid不显示数据
- js库开发--参数传递及方法修改
- AngularJS之基础-5 路由(定义路由、使用路由)、自定义指令(Directive)
- CSS样式积累
- [程序猿入行必备]CSS样式之优先级
- html5 表格
- CSS溢出实现一个图片放大的效果
- VS2015 安装mvc4安装包以及vs2010 sp1后导致Razor语法失效代码不高亮(能正常运行)/视图页面无法智能提示(.cshtml)解决办法
- AngularJS之基础-4 DI(控制器参数、监听)、指令(模板包含、节点控制)、事件绑定
- 用js生成rgb颜色
- 关于css外部引用注意事项
- jquery-通过下拉菜单更改input日期
- HNACM(八)G- Interference Signal
- jQuery和dom的相互转换
- leetcode——24—— Swap Nodes in Pairs