Dubbo 源码剖析与实战
何辉
平安壹钱包架构师
4711 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 33 讲
开篇词 (1讲)
Dubbo 源码剖析与实战
15
15
1.0x
00:00/00:00
登录|注册

15|Wrapper机制:Wrapper是怎么降低调用开销的?

你好,我是何辉。今天是我们深入研究 Dubbo 源码的第四篇,Wrapper 机制。
Wrapper,很多人从单词层面来解读,很容易理解成是 Java 包装类,或者是装饰器设计模式,其实都不是,它是 Dubbo 中的一种动态生成的代理类。
一听到代理,你可能已经想到了 JDK 和 Cglib 两个常见的代理,JDK 代理是动态生成了一个继承 Proxy 的代理类,而 Cglib 代理是动态生成了一个继承被代理类的派生代理类,既然都有现成的动态生成代理类的解决方案了,为什么 Dubbo 还需要动态生成自己的代理类呢?
带着这个问题,我们开始今天的学习。

不足与缺失

首先得弄明白一件事情,现有的 JDK 和 Cglib 代理为什么不能满足 Dubbo 的诉求?

1. JDK 代理

在“泛化调用”讲中我们讲过,泛化调用三部曲中第一个关键环节,通过接口类名、接口方法名、接口方法参数类名、业务请求参数,这四个维度的字段发起远程调用。
结合具体的应用场景来思考,有三个请求,每个请求中的四个字段值都不一样,现在要发往提供方服务:
而提供方服务,需要在统一的入口中接收请求,然后派发到不同的接口服务中去。简单点说,提供方服务要做的就是,构建通用的接收请求入口,然后进行分发调用不同接口服务而已。如果要针对这个统一的入口进行编码实现,你会怎么写呢?
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

本文深入探讨了Dubbo中的Wrapper机制以及自定义代理的实现方式。通过分析Dubbo源码,阐述了Wrapper机制如何降低调用开销,并展示了如何改善原有的if...else逻辑,使得调用更加通用。此外,文章还介绍了自定义代理的实现方式,展示了如何生成代理类并调用方法。同时,文章总结了Wrapper机制的利弊,指出了其高性能和灵活性,但也提到了定制化程度高和维护门槛较高的问题。整体而言,本文通过深入探讨Dubbo中的Wrapper机制和自定义代理的实现方式,为读者提供了对Dubbo代理类生成方式的全面了解和实际应用方法。适合技术人员了解Dubbo框架的底层实现和性能优化方法。文章内容涵盖了Dubbo的代理类生成方式、性能优化和自定义代理实现,为读者提供了全面了解Dubbo代理类生成方式的实际应用方法。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《Dubbo 源码剖析与实战》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(3)

  • 最新
  • 精选
  • 斯瓦辛武Roy
    给老师点个赞,这样的底层代码真的有助于P6的进步,希望春节期间不停更哈

    作者回复: 你好,斯瓦辛武Roy:感谢感谢,对你有帮助我就已经非常开心啦。春节期间不会停更,一三五节奏不变哈~

    2023-01-22归属地:浙江
    3
  • 王建新
    他到底是怎么代理生成那块if else的没看到原理呀

    作者回复: 你好,王建新:别心急,认真仔细的深入看几遍,其中的原理相信你会体会到的。

    2023-07-28归属地:北京
    2
  • 张三丰
    "但是这么一来,如何生成动态代理类的逻辑就至关重要了,而且万一我们以后有自主定制的诉求,想修改这段生成代理类的这段逻辑,反而受 Cglib 库的牵制。" 老师,这个能举个例子么? 是怎么牵制的?

    作者回复: 你好,张三丰:举个例子,假设 dubbo 是 A 开发的,Cglib 是 B 开发的,A 根本不认识 B,A 只是在 maven 仓库使用了 B 开发的 Cglib 来封装字节码,字节码的封装过程都是在 Cglib 完成。但是,如果哪天,A 认为封装字节码的核心逻辑想要调整下,那么 A 是不是得试图改 Cglib 源码,而 Cglib 是 B 开发的。A 为了实现自己的各种业务需要定制化修改 B 写的 Cglib,那么 B 凭什么会让别人各种修改自己的 Cglib 源码呢? 大概就是这个意思,所以会受到一定的牵制。

    2023-02-09归属地:北京
    2
收起评论
显示
设置
留言
3
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部