本文基于Dubbo2.7.5源码。
为什么这么说呢?
如果你是一个面试官,你招聘的岗位也不需要改造源码,应聘者也没有说自己熟悉dubbo源码,那面试的过程中也不用去深挖这些源码了,而应该更多的考察应聘者的软件设计思维,编码能力,工作经验是否匹配等。否则你招进来的可能是一个背诵八股文能力强,但是动手能力差的人,浪费了自己的招聘时间;
对于一个求职者,你的求职时间有限,应该是以尽快找到工作为目标,可以针对性的准备。详细研究这些源码细节,反而会吞噬你大量时间,耽误了你宝贵的求职时间;
如果你被迫加班划水,说明加班看技术也并不是你的本意,何不尝试改变一下工作环境呢?
看到这里的朋友,你一定就是万里挑一的那个靓仔,接下来我们开始正文。
首先我们来聊一个大家经常会碰到的问题:
1. 为什么你看不下Dubbo源码?
相关不少朋友会有这个经历:看dubbo源码,看到一半就看不下去了,然后过了几周就忘记之前自己看了啥,再后来,就再也不想继续看了。最后对外宣称:“我研究过Dubbo源码!”。
诚然,这样的状态,再背几道八股文面试题,应付面试足以。但是我相信阅读到这里的朋友绝对不想这样欺骗自己。
一般来说,以下几个原因会导致你阅读Dubbo源码不畅:
- 对Dubbo SPI的机制不了解,导致在阅读的过程中,不知道要跟哪个类去看代码了;
- 阅读顺序不对,没有先阅读服务导出和服务引入的代码,直接看服务调用的代码,导致不知道执行流程;
- 以debug的方式阅读代码,导致跟着跟着就陷入到细枝末节里面去了,到最后不想再看了;
- 本身对Dubbo很多功能都不了解,决定看源码才香,一上来就看代码,本末倒置,最终导致不知道代码是实现什么功能的…
对于Dubbo源码,首先,你需要先能在项目中引入Dubbo,以及能够使用基本功能,基于这个基础之上,正确的阅读顺序应该是这样的:
- Dubbo SPI;
- Dubbo服务导出
- Dubbo服务引入;
- Dubbo服务调用流程
最重要的就是在阅读过程中抓住主线流程。接下来我们就详细研究Dubbo源码。
Dubbo 3.0已经发布有一段时间了了,并且提供了强大的功能,如多语言支持,双向流,基于HTTP/2,放弃私有协议,优化服务发现模型,统一流量治理模型等等。这值得我们研究其应用场景和源码。不过,在此之前,我们先得对Dubb 2的源码有所了解,以方便更顺畅的阅读Dubbo 3.0新特性相关代码。
本文就是一篇带您深入了解Dubbo源码的文章,看完包懂,让你对Dubbo源码改造顺手捏来。如果看完还不懂,请加我微信,任你骂我是个大忽悠大骗子,我都不还口。
如果你的工作并不需要改造dubbo源码,就没必要死记硬背这些源码的详细调用流程了,如果有改造,也不用死记硬背,先熟悉了流程,在改造dubbo源码的过程中就会更加熟悉了。否则,就变成了背八股文了。