ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

Dubbo3 源码系列 -- 环境准备

2022-02-04 16:35:12  阅读:260  来源: 互联网

标签:Dubbo remoting dubbo -- 实现 源码 模块 Dubbo3


Dubbo3 源码系列 -- 环境准备

前言

工作中一直使用Dubbo项目,借着这次机会通过源码的方式来学习下Dubbo的源码内容。目前市面上很多都是的Dubbo2系列的教程;就连目前的Dubbo的官方文档也还在完善中,既然是学习,那就 just do it

环境搭建

前置环境

  • Maven
  • Git
  • JDK
  • IntelliJ IDEA

源码构建

拉取代码

git clone git@github.com:ln0491/dubbo.git

执行编译

mvn clean install -Dmaven.test.skip=true

这里推荐使用 mvnd编译,速度实测要快3倍左右。 (关于mvnd的代码研究的请参考:mvnd的GitHub

mvnd clean install -Dmaven.test.skip=true -Dquickly

这里需要等待一会儿,去喝杯水吧!

image-20220204134402423

导入IDEA

mvn idea:idea
image-20220204134753020

模块介绍

  • dubbo-common 模块

    Dubbo 的一个公共模块,其中有很多工具类以及公共逻辑,例如Dubbo SPI 实现、时间轮实现、动态编译器等

  • dubbo-remoting 模块

    Dubbo 的远程通信模块,其中的子模块依赖各种开源组件实现远程通信。在 dubbo-remoting-api 子模块中定义该模块的抽象概念,在其他子模块中依赖其他开源组件进行实现,例如,dubbo-remoting-netty4 子模块依赖 Netty 4 实现远程通信,dubbo-remoting-zookeeper 通过 Apache Curator 实现与 ZooKeeper 集群的交互。

  • dubbo-rpc 模块

    Dubbo 中对远程调用协议进行抽象的模块,其中抽象了各种协议,依赖于 dubbo-remoting 模块的远程调用功能。dubbo-rpc-api 子模块是核心抽象,其他子模块是针对具体协议的实现,例如,dubbo-rpc-dubbo 子模块是对 Dubbo 协议的实现,依赖了 dubbo-remoting-netty4 等 dubbo-remoting 子模块。 dubbo-rpc 模块的实现中只包含一对一的调用,不关心集群的相关内容。

  • dubbo-registry 模块

    Dubbo 中负责与多种开源注册中心进行交互的模块,提供注册中心的能力。其中, dubbo-registry-api 子模块是顶层抽象,其他子模块是针对具体开源注册中心组件的具体实现,例如,dubbo-registry-zookeeper 子模块是 Dubbo 接入 ZooKeeper 的具体实现。

  • dubbo-monitor 模块

    Dubbo 的监控模块,主要用于统计服务调用次数、调用时间以及实现调用链跟踪的服务。

  • dubbo-config 模块

    Dubbo 对外暴露的配置都是由该模块进行解析的。例如,dubbo-config-api 子模块负责处理 API 方式使用时的相关配置,dubbo-config-spring 子模块负责处理与 Spring 集成使用时的相关配置方式。有了 dubbo-config 模块,用户只需要了解 Dubbo 配置的规则即可,无须了解 Dubbo 内部的细节。

  • dubbo-metadata 模块

    Dubbo 的元数据模块(本课程后续会详细介绍元数据的内容)。dubbo-metadata 模块的实现套路也是有一个 api 子模块进行抽象,然后其他子模块进行具体实现

  • dubbo-configcenter 模块

    Dubbo 的动态配置模块,主要负责外部化配置以及服务治理规则的存储与通知,提供了多个子模块用来接入多种开源的服务发现组件

  • dubbo-demo 模块

    Dubbo的官方提供的使用案例,可以通过注解、API、XML方式、SpringBoot等相关的演示案例

案例运行

这里通过 dubbo-demo-annotation为例,测试编译效果。提前启动 zookeeper吧。

  • 启动org.apache.dubbo.demo.provider.Application
  • 启动org.apache.dubbo.demo.consumer.Application

image-20220204143632701

总结

本文简单的搭建了Dubbo的源码工程,后续继续阅读的小伙伴可以 GitHub 的Fork继续研究;并且简单介绍了Dubbo的模块和案例演示。

标签:Dubbo,remoting,dubbo,--,实现,源码,模块,Dubbo3
来源: https://www.cnblogs.com/weir110/p/15862945.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有