要谈编解码技术,首先从Java序列化进行谈起。因为Java序列化没法跨语言,不多用来进行消息的编解码和传输。并且序列化以后的码流太大,序列化性能过低,因此,有很大主流的编解码框架应运而生。主要介绍主流的三大编解码器。Google的Protobuf、FaceBook的Thrift以及JBoss的Marshalling。java
实际上protobuf支持的基本数据类型,thrift基本上也都支持,可是thrift额外支持了如下的容器类型 list(java.util.ArrayList)、set(java.util.HashSet)、map(java.util.HashMap),这点是protobuf不具有的。所以相对来讲thrift支持了更丰富的数据结构,更易扩展。缓存