1 google protocol buffer
1.1 Definition
1.1.1 google开发的二进制的数据交换格式,独立于语言,独立于平台
1.1.2 提供了三种语言的实现,java、c++、Python
1.2 Function
1.2.1 用于分布式应用之间的数据通信或者异构环境下的数据交换
1.2.2 常用于网络传输、配置文件、数据存储等领域
1.3 Advantage
1.3.1 protobuf advantage
1.3.1.1 数据传输效率高
1.3.1.2 支持java、c++、Python,序列化和反序列化效率高
1.3.1.3 相比json、xml而言,节省消息空间
1.3.1.4 简单易用,可以按照一定语法定义消息格式,然后使用protoc命令行工具生成相应类
1.3.2 protobuf disadvantage
1.3.2.1 对象结构体有限制,只适用于内部系统
1.3.3 protobuf & thrift &json &xml &binary
1.3.3.1 thrift
1、2007年Facebook开发的跨语言的轻量级RPC消息和数据交换框架
2、能生成多种语言,C++, Java,Python, PHP, Ruby, Erlang, Perl, Haskell, C#, Cocoa, Smalltalk, OCaml
3、较protobuf而言,thrift功能丰富,支持语言多,资料少,学习成本高