最开始了解Dubbo还是4年多前,应该是出去面试时面试官询问是否了解(double),瞬间有些懵逼,好在最后还是给了offer,和同事吃散伙饭时聊到这个double不是我理解的double,是指的Dubbo,深感自己的技术栈太浅,之后的几年里,抛弃做全栈工程师的想法,能把后端技术学精学全也是一种不容易的事情。

 

 网上也有很多Dubbo源码的学习,要么大篇幅的贴代码加注释,要么就是单对一个点聊一下,我的Dubbo源码系列希望从最初的服务治理需求出发,用演进的观点看待Dubbo的各个功能模块在为越来越复杂,越来越个性化服务治理需求下的任务承接,融汇贯通一下。行文描述我个人喜欢偏一些白话一些,不想再套用复杂的概念,学习前复杂的概念是拦路虎,我用我自己的话解释下,如有不对的地方,看官可以评论指正。

 

Dubbo的源码不算少,我按照自己的理解,先讲下面几个方面: 

Dubbo的核心概念——抽象的东西涵盖的东西当然比具象的多,也是Dubbo的工程团队人员们的智慧结晶,值得先了解下

Dubbo核心工作流——服务怎么远程调用的,怎么伪装成本地方法的,服务是怎么暴露的和与注册中心的交互是什么样的 

Duboo的服务治理——监控,负载均衡,集群容错尤其是怎么与核心工作流整合到一起,就是一个服务方法调用,好多功能是怎么hook上调用链的,理解其中设计的精妙

Dubbo的设计模式——最后既然Dubbo的设计的那么好,那就单独聊聊她用到设计模式,我想里面的代码设计思路,对普通开发的我们也会有很大的启发,怎么分层啊,设计模式啦,我自己在平时工作中还借鉴过里面的设计模式

 

最后大家有时间还是多去Dubbo的官网查询文档,内容丰富,有关Dubbo的方方面面,目前Dubbo捐赠给了Apache成为了顶级项目,希望Dubbo社区变得活跃起来,越做越好吧(虽然我现在工作用的Spring Cloud ?)