java中的序列化方式及dubbo使用kryo序列化

java中的序列化方式:

1. 自带序列化  ObjectInputSteam、 ObjectOutStream等

2. hession2

3. json ,xml等格式

4.kryo

5.FST

---

dubbo直接多种序列化方式,默认是hession2. 比较成熟,但是效率略低。

可以配置使用 kryo

    <dubbo:protocol name="dubbo" serialization="kryo"/>  

序列化集合类型的时候,在声明对象的时候,最好不要用接口来声明,要用具体类来声明,防止序列化后类型不匹配,或反序列化失败。

比如 HashSet set  =new HashSet()。如果你写成 et set= new HashSet()就可能反序列化出错。

要让Kryo和FST完全发挥出高性能,最好将那些需要被序列化的类注册到dubbo系统中,例如,我们可以实现如下回调接口: 
public class SerializationOptimizerImpl implements SerializationOptimizer {    public Collection<Class> getSerializableClasses() {        List<Class> classes = new LinkedList<Class>();
        classes.add(BidRequest.class);
        classes.add(BidResponse.class);
        classes.add(Device.class);
        classes.add(Geo.class);
        classes.add(Impression.class);
        classes.add(SeatBid.class);        return classes;
    }
}


然后在XML配置中添加: 

<dubbo:protocol name="dubbo" serialization="kryo" optimizer="com.alibaba.dubbo.demo.SerializationOptimizerImpl"/> 

转载于:https://my.oschina.net/zhaolin/blog/2243426

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值