Dubbo源码分析-1 源码目录结构

前面讲述过Dubbo微服务框架的整体组件情况:

从0到微服务-9 Dubbo框架中的微服务组件 - chch213 - 博客园 (cnblogs.com)

 

接下来,我们从Dubbo源码分析熟悉下微服务框架的-RPC框架。

Dubbo官网:

文档 | Apache Dubbo

Dubbo的github:https://github.com/alibaba/dubbo

Dubbo官网:http://dubbo.io/

Dubbo使用者手册:https://dubbo.gitbooks.io/dubbo-user-book/

Dubbo管理者手册:https://dubbo.gitbooks.io/dubbo-admin-book/

Dubbo开发者手册:https://dubbo.gitbooks.io/dubbo-dev-book/

 

前言

从事开发这么多年,给我最大的感触就是学习任何一个新技术还是要从底层源码开始,这样才能遇到问题知道怎么去分析解决,一直想记录下Dubbo的心得,现在就让开始dubbo之旅吧:

接下来所有源码分析都是基于Dubbo3.0.0版本,不管学习技术源码首先你要先清楚了解源码的目录结构,这样才能有针对性的知道遇到问题该去哪里找答案。

环境:

dubbo版本:Dubbo3.0.0

本地开发工具:IDEA

操作系统:Windows

 

Dubbo源码目录结构

是不是一看到目录结构瞬间觉得不想学下去了

万事开头难,坚持住你就赢了。

其实,看到这样的目录我们应该高兴,毕竟人家已经从整体上把源码分成了几个人家认为必要的模块,要是都在一个文件里可能学着更辛苦。

接下来我们看下几个目录以及作用如下:

dubbo-build-tools: 构件编译模块
dubbo-cluster: 集群容错模块,包含负载均衡策略,集群容错策略以及路由等  
dubbo-common:通用逻辑模块,提供工具类和通用模型
dubbo-compatible:兼容性模块
dubbo-config:配置模块,主要实现API配置,属性配置,XML配置等工功能
dubbo-configcenter:动态配置中心
dubbo-container:容器模块,没有使用Tomcat等Web容器,而是使用Main方法加载Spring容器。
dubbo-demo:提供了三种方式的远程调用示例。
dubbo-dependencies:dubbo版本升级依赖
dubbo-dependencies-bom:dubbo版本升级依赖
dubbo-monitor:监控模块,主要监控接口调用的次数、时间等信息。
dubbo-plugin:插件模块。
dubbo-registry: 注册中心模块。
dubbo-remoting:远程通信模块,为消费者和生产者提供远程通信能力。
dubbo-rpc: 抽象各种通信协议以及动态代理(容易和remoting模块相混淆)
dubbo-serialization:序列化相关的

 

其中,dubbo-demo模块提供了几种使用Dubbo框架进行远程调用的方式,这也是对于初学者很有帮助的一个模块,示例明确的告诉你了远程调用是怎么配置实现的:

我们看下比较常用的几种:xml配置方式是我之前项目用过的,不知道你之前用过什么方式,示例详细我就不说了,大家有兴趣自己下载源码看下就明白了,xml配置方式我前面章节也有讲述过:从0到微服务-3 服务发布与订阅 - chch213 - 博客园 (cnblogs.com)

 

 

总结

通过阅读源码目录你能够清晰知道每个模块大致做什么?以及通过demo简单的示例也能清晰知道服务的发布与订阅该怎么做。知道一个总体组成这就足够了,后面我们会一一讲解细节模块。

 

posted @ 2022-05-22 12:05  chch213  阅读(112)  评论(0编辑  收藏  举报