protobuf,json,xml,binary,Thrift之间的对比
来源:互联网 发布:银行服务排名 知乎 编辑:程序博客网 时间:2024/06/07 17:20
protobuf,json,xml,binary,Thrift之间的对比
一条消息数据,用protobuf序列化后的大小是json的10分之一,xml格式的20分之一,是二进制序列化的10分之一,总体看来ProtoBuf的优势还是很明显的。
protobuf是google提供的一个开源序列化框架,类似于XML,JSON这样的数据表示语言,详情访问protobuf的google官方网站。
protobuf在google中是一个比较核心的基础库,作为分布式运算涉及到大量的不同业务消息的传递,如何高效简洁的表示、操作这些业务消息在google这样的大规模应用中是至关重要的。而protobuf这样的库正好是在效率、数据大小、易用性之间取得了很好的平衡。
protobuf简单总结如下几点:
1.灵活(方便接口更新)、高效(效率经过google的优化,传输效率比普通的XML等高很多);
2.易于使用;开发人员通过按照一定的语法定义结构化的消息格式,然后送给命令行工具,工具将自动生成相关的类,可以支持Java、c#、c++、Go 和Python等语言环境。通过将这些类包含在项目中,可以很轻松的调用相关方法来完成业务消息的序列化与反序列化工作。
3.语言支持;原生支持Java、c#、c++、Go 和Python
个人总结的适用protobuf的场合:
1.需要和其它系统做消息交换的,对消息大小很敏感的。那么protobuf适合了,它语言无关,消息空间相对xml和json等节省很多。
2.小数据的场合。如果你是大数据,用它并不适合。
3.项目语言是c++,java,python的,因为它们可以使用google的源生类库,序列化和反序列化的效率非常高。其它的语言需要第三方或者自己写,序列化和反序列化的效率不保证。
4.总体而言,protobuf还是非常好用的,被很多开源系统用于数据通信的工具,在google也是核心的基础库。
此外,还有更牛叉的facebook的thrift,2007年由Facebook开发,之后在2008年加到Apache计划中。是一个跨语言的轻量级RPC消息和数据交换框架,Thrift能生成的语言有: C++, Java, Python, PHP, Ruby, Erlang, Perl, Haskell, C#, Cocoa, Smalltalk, and OCaml,这是它的一大优点。
- protobuf,json,xml,binary,Thrift之间的对比
- protobuf,json,xml,binary,Thrift之间的对比 .
- protobuf,json,xml,binary,Thrift之间的对比
- Thrift,protobuf,json,xml,binary之间的对比
- protobuf,json,xml,binary,Thrift之间的对比
- protobuf/json/xml/binary/Thrift数据交换
- xml、json、protobuf、thrift与avro
- protobuf和thrift对比
- protobuf和thrift对比
- protobuf和thrift对比
- Protobuf 和 Json的对比
- protobuf,xml,json序列化后与解析时间的对比
- xml 与 protobuf之间的转换
- xml与json的对比
- XML与JSON的对比
- xml与json的对比
- XML与JSON的对比
- .NET 中对 PHP、Binary、SOAP、XML、JSON、Hessian 等序列化的效率对比
- CentOS安装mysql数据库
- Activiti学习笔记1
- 字符串拷贝当中的问题
- 【Unity5.x Shaders】使用Shader制作河流效果
- hdu 2181 哈密顿绕世界(dfs+回溯)
- protobuf,json,xml,binary,Thrift之间的对比
- python编码
- OPENGL究竟怎么配置
- 《锋利的jQuery》第六章、 jQuery与Ajax应用
- Oracle 12c 在windows10 安装问题
- ionic之样式复选框
- Python——set集合
- MFC编程入门(常用控件:编辑框Edit Control)
- ubuntu14.04中安装opencv2.4.9