要谈编解码技术,首先从Java序列化进行谈起。由于Java序列化无法跨语言,很少用来进行消息的编解码和传输。而且序列化之后的码流太大,序列化性能太低,所以,有很大主流的编解码框架应运而生。主要介绍主流的三大编解码器。Google的Protobuf、FaceBook的Thrift以及JBoss的Marshalling。
- Google Protocol Buffers
- 结构化数据存储格式(XML,JSON)
- 高效编解码性能
- 语言无关、平台无关、扩展性好
- 官方支持Java、C++和Python三种语言。
Thrift
- 通用的二进制编解码
- 压缩的二进制编解码
- 优化的可选字段压缩编解码
JBoss Marshalling
- 可插拔的类解析器
- 可插拔的对象替换技术,不需要通过继承的方式。
- 可插拔的预定义类缓存表。