天天看点

dubbo源码解读(一)

前几个月就有开始研究dubbo的源码,不过基于自己比较懒所以一直也没有深入的去研究,现在也根据自己的整理心得来输出一份自己的解读,当然这一切都是从0开始,自己的解读过程都是实时个人摸索,所以有些不对的地方欢迎大佬们批判,也欢迎大家吐槽。

在开始之前我们先了解下dubbo的项目结构和组件划分:

dubbo源码解读(一)

我这里对dubbo根据pom进行了基本的划分,下边对这些组件做下基本的说明,并且来分析下解读入口和流程

dubbo-bom:这个是不知道意义,不过后边在解读这个文档的时候肯定会补充上

dubbo-compatible:这个现在也不知道是啥,可能需要追更阿里版本的源码

dubbo-distribution:

以上不知道具体含义,如果有知道的大佬望解答

dubbo-cluster:这一块的意义我不做解说了,作为一个小白菜我对这个词汇真不知道是怎么表达,有大佬看到希望说明下

dubbo-common:这里定义了dubbo里边通用的一些工具组件

dubbo-container:字面意思是提供的容器模块

dubbo-configcenter:提供的配置中心模块

dubbo-config:提供的dubbo配置模块

dubbo-dependencies:提供dubbo集成其他组件的pom

dubbo-filter:拦截器模块

dubbo-register:注册中心模块

dubbo-metadata:2.7.x版本增加的元数据中心模块

dubbo-monitor:监控模块

dubbo-remoting:远程通讯模块

dubbo-rpc:rpc模块

dubbo-serialization:序列化模块

dubbo-plugin:dubbo的其他插件模块

dubbo-demo:测试模块

通过dubbo-demo模块,我们可以发现dubbo分别提供了基于注解,api,xml三种方式的服务注册和发现

不过,如果只是想要搭建dubbo服务可以从demo入手,但是我们想要解读dubbo的源码,并了解其内部的实现从而学习到一些编码以及设计方面的东西,这时候不建议直接从demo开始debug。

通过上边的模块划分上我可以整理到dubbo-common是一个非常好的入口,

后续的解读我也会根据依赖,组件化分以及后续的操作进行重新划分

而且下载好源码后我们很容易发现,dubbo的版本都是通过统一的父版本来完成,这为以后的维护和使用提供了遍历

下一篇开始我们来解读下 dubbo-common