Dubbo源码分析:序列化方式与调用

撸了今年阿里、腾讯和美团的面试,我有一个重要发现…….

作者:backend

出处:https://blog.csdn.net/u010013573/article/category/8462451


概述

  • 序列化模块主要为dubbo协议提供服务提供者和服务消费者之间的数据序列化功能。dubbo是一种适合于高并发、小数据量的互联网应用场景的框架,而序列化对于远程调用的响应速度,吞吐量,网络带宽消耗也其中至关重要的作用,是提高分布式系统性能的最关键因素之一。
  • 在源码实现中,在远程传输模块remoting,调用Transporter传输数据之前,通过Codec架构对数据进行序列化,在Codec中调用dubbo-serialization模块的序列化类进行序列化。
    201907191009_1.png

使用方式

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

序列化的类型

dubbo框架原生支持四种序列化类型,分别为:dubbo序列化,hessian2序列化,json序列化,jdk序列化;性能依次下降。默认为hessian2序列化。dubbo序列化为dubbo框架自身实现的一种Java序列化方案,但是不够成熟,不建议在生产环境使用。
201907191009_2.png
在成为Apache孵化项目之后,对序列化方式进行了优化,支持的类型,分别为:fastjson,fst,hessian2,jdk和kryo。默认序列化方案还是hessian2。
其中fst为完全兼容JDK序列化协议的序列化框架,序列化速度是JDK的4到10倍,大小是JDK的1/3左右。kryo序列化速度也比JDK的要快,并且大小是JDK的1/10左右。fst和kryo性能普通好于其他序列化方案,生产环境比较推荐使用。
201907191009_3.png

赞(0) 打赏

如未加特殊说明,此网站文章均为原创,转载必须注明出处。Java 技术驿站 » Dubbo源码分析:序列化方式与调用
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

关注【Java 技术驿站】公众号,每天早上 8:10 为你推送一篇技术文章

扫描二维码关注我!


关注【Java 技术驿站】公众号 回复 “VIP”,获取 VIP 地址永久关闭弹出窗口

免费获取资源

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏