编解码技术

要谈编解码技术,首先从Java序列化进行谈起。因为Java序列化没法跨语言,不多用来进行消息的编解码和传输。并且序列化以后的码流太大,序列化性能过低,因此,有很大主流的编解码框架应运而生。主要介绍主流的三大编解码器。Google的Protobuf、FaceBook的Thrift以及JBoss的Marshalling。java

Google Protocol Buffers

  • 结构化数据存储格式(XML,JSON)
  • 高效编解码性能
  • 语言无关、平台无关、扩展性好
  • 官方支持Java、C++和Python三种语言。

Thrift

  • 通用的二进制编解码
  • 压缩的二进制编解码
  • 优化的可选字段压缩编解码

JBoss Marshalling

  • 可插拔的类解析器
  • 可插拔的对象替换技术,不须要经过继承的方式。
  • 可插拔的预约义类缓存表。

实际上protobuf支持的基本数据类型,thrift基本上也都支持,可是thrift额外支持了如下的容器类型 list(java.util.ArrayList)、set(java.util.HashSet)、map(java.util.HashMap),这点是protobuf不具有的。所以相对来讲thrift支持了更丰富的数据结构,更易扩展。缓存

相关文章
相关标签/搜索