Dubbo中支持的序列化方式(性能逐渐递减):
- dubbo序列化
- hessian2序列化(默认使用的是阿里修改的hessian lite)
- json序列化
- java序列化,不推荐
针对Java语言的序列化技术:Kryo、FST,其中Kryo是一种非常成熟的序列化实现,已经在Twitter、Yahoo以及多个著名开源项目(如Hive、storm)中广泛使用。
添加依赖
<!-- 添加序列化依赖 -->
<dependency>
<groupId>de.javakaffee</groupId>
<artifactId>kryo-serializers</artifactId>
<version>0.42</version>
</dependency>
同时,添加配置
dubbo:
protocol:
serialization: kryo
在使用kryo进行高速序列化时,需要将这些需要序列化的类手动注册一下。kryo对一些基本的数据类型进行了注册,对于我们自己创建需要序列化的类,可以通过dubbo.protocol.serialization
的方式手动指定自己实现注册需要的序列化类的完整类名。
尽可能将每一个需要序列化的类提供一个无参构造函数,并实现Serializable接口,以实现高速序列化,并兼容其他框架。值得注意的是,即使不注册,效率也较高。