序列化库选型

序列化和反序列化在线上系统中是一个绕不开的话题,通常作为RPC框架中的一部分而被很多人所忽略。然而它经常成为系统设计或者性能影响因素的一个重要环节。业界有许许多多的序列化库,我们应该如何进行选型,下面我们来简单探讨一下

阅读全文>>

Serializable和Hession

Serializable是Java提供的原生序列化方式,它提供了配套的ObjectOutputStream和ObjectIutputStream来处理Java对象的序列化读写,解析效率性能比较高,但是消耗的存储却捉襟见肘。很多框架中仅仅作为一个基础实现,但是基本无人使用。比如 Dubbo 框架中并不是使用它作为默认的序列化方式,而是使用hession。下面看看这两种序列化方式的优劣。

阅读全文>>

Kryo序列化器

Kryo是一个快速高效的java二进制对象图序列化框架。该项目的目标是高解析效率、高压缩率和易于使用的API。无论是文件、数据库还是网络上的对象,在需要持久化的场景中,该项目可以进入考虑的范围。

阅读全文>>

Avro序列化器

Apache Avro(以下简称 Avro)是一种与编程语言无关的序列化格式。Avro 数据通过与语言无关的 schema 来定义。schema 通过 JSON 来描述,数据被序列化成二进制文件或 JSON 文件,不过一般会使用二进制文件。在大数据体系下,比较注重存储的压缩率,反而对效率并没有要求得很苛刻。

阅读全文>>

thrift序列化协议

Apache Thrift 脱胎于 Facebook ,是一种高效的、支持多种编程语言的远程服务调用的框架。它的序列化协议同样可用于通讯协议、数据存储等领域的语言无关、平台无关、可扩展的序列化结构数据格式。

阅读全文>>