本篇我们来继续讨论一下关于序列化协议需要知道的一些内容。
Fastjson是采用一种“假定有序快速匹配”的算法。优点:接口简单易用、目前java语言中最快的json库。
过于注重快,而偏离了“标准”及功能性、代码质量不高,文档不全。
协议交互、Web输出、Android客户端
分布式系统的RPC解决方案
使用者较少、跨防火墙访问时,不安全、不具有可读性,调试代码时相对困难、不能与其他传输层协议共同使用(例如HTTP)、无法支持向持久层直接读写数据,即不适合做数据持久化序列化协议。
Thrift,不仅是序列化协议,还是一个RPC框架。优点:序列化后的体积小, 速度快、支持多种语言和丰富的数据类型、对于数据字段的增删具有较强的兼容性、支持二进制压缩编码。
在Hadoop中做Hive、Pig和MapReduce的持久化数据格式
对于习惯于静态类型语言的用户不直观
Avro,Hadoop的一个子项目,解决了JSON的冗长和没有IDL的问题。优点:支持丰富的数据类型、简单的动态语言结合功能、具有自我描述属性、提高了数据解析速度、快速可压缩的二进制数据形式、可以实现远程过程调用RPC、支持跨编程语言实现。