Dubbo源码环境搭建

背景

在这里插入图片描述
Dubbo 作为一款微服务框架,最重要的是向用户提供跨进程的 RPC 远程调用能力。如上图所示,Dubbo 的服务消费者(Consumer)通过一系列的工作将请求发送给服务提供者(Provider)。

为了实现这样一个目标,Dubbo 引入了注册中心(Registry)组件,通过注册中心,服务消费者可以感知到服务提供者的连接方式,从而将请求发送给正确的服务提供者。

搭建Dubbo源码环境

好的开始是成功的一半,阅读源码也是一样。
这里我直接从官方仓库https://github.com/apache/dubbo.git Fork到自己的仓库,我当前最新版本是3.2,我就直接用最新版本了。

git clone https://github.com/apache/dubbo.git

然后切换分支,因为目前最新的是 Dubbo 3.2 版本,所以这里我们就用这个新版本:

git checkout -b qhyu-3.2 3.2

不急着使用IDEA导入,直接使用命令行进行编译

mvn -X clean install -Dmaven.test.skip=true 

在这里插入图片描述
编译的时间我这边比较长,20来分钟,不着急慢慢等待。

最后,执行下面的命令转换成 IDEA 项目:

mvn idea:idea // 要是执行报错,就执行这个 mvn idea:workspace 

在这里插入图片描述
最后一步的时间也比较长,我这边16分钟左右。

然后,在 IDEA 中导入源码,因为这个导入过程中会下载所需的依赖包,所以会耗费点时间。

Dubbo源码核心模块

Dubbo 是一款开源的高性能、轻量级的分布式服务框架,它由多个核心模块组成。下面是 Dubbo 的核心模块的简要介绍:

  1. dubbo-common:该模块提供了 Dubbo 框架中通用的工具类和功能,例如参数封装、反射工具、序列化、异常处理等。它是其他模块的基础依赖。

  2. dubbo-config:该模块定义了 Dubbo 的配置模型,并提供了配置解析和管理的相关功能。它包括了对 XML、Properties 和 Annotation 等多种配置方式的支持。

  3. dubbo-registry:该模块实现了服务注册与发现的功能,包括服务注册中心的抽象和多种实现,例如 ZooKeeper、Redis、Multicast 等。它提供了服务的注册、订阅和通知等机制。

  4. dubbo-remoting:该模块提供了 Dubbo 框架的远程通信功能,包括底层的网络传输和编解码。它支持多种通信协议,如 TCP、HTTP、Dubbo 协议等,并提供了客户端和服务器端的通信处理。

  5. dubbo-rpc:该模块实现了 Dubbo 的远程过程调用(RPC)功能,包括服务暴露和引用的相关逻辑。它支持多种调用方式,如同步调用、异步调用、单向调用等,并提供了负载均衡、容错处理等机制。

  6. dubbo-cluster:该模块实现了 Dubbo 的集群容错功能,用于处理服务提供者的集群化部署和调用失败时的容错处理。它支持多种集群容错策略,如 Failover、Failfast、Failsafe 等。

  7. dubbo-monitor:该模块提供了 Dubbo 框架的监控和管理功能,用于收集和展示服务的运行状态和统计信息。它支持多种监控中心的接入,如 Dubbo 自带的 Monitor 中心、Elasticsearch、Prometheus 等。

  8. dubbo-container:该模块提供了 Dubbo 服务的容器化功能,用于将 Dubbo 服务部署到不同的容器中,如 Spring、Servlet 容器等。它提供了服务的生命周期管理和容器的启动和停止等功能。

这些核心模块共同构成了 Dubbo 框架的基础架构,每个模块负责不同的功能和领域,通过协同工作实现了 Dubbo 的分布式服务调用和管理。通过深入研究这些模块的源码,可以更好地理解 Dubbo 的设计和实现原理。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/86639.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

内网穿透——搭建私人影音媒体平台

文章目录 1. 前言2. Jellyfin服务网站搭建2.1. Jellyfin下载和安装2.2. Jellyfin网页测试 3.本地网页发布3.1 cpolar的安装和注册3.2 Cpolar云端设置3.3 Cpolar本地设置 4.公网访问测试5. 结语 1. 前言 随着移动智能设备的普及,各种各样的使用需求也被开发出来&…

粒子群算法的基本原理和Matlab实现

1.案例背景 1.1 PSO算法介绍 粒子群优化算法(Particle Swarm Optimization,PSO)是计算智能领域,除了蚁群算法,鱼群算法之外的一种群体智能的优化算法,该算法最早是由Kennedy和 Eberhart 在1995年提出的。PSO算法源于对鸟类捕食行为的研究,鸟类捕食时,每只鸟找到食物最简单有效…

【数据结构】 队列(Queue)与队列的模拟实现

文章目录 🍀队列(Queue)的概念🎋队列的使用🎍队列的模拟实现🚩创建队列🚩入队列🚩出队列🚩获取队头元素🚩获取队列长度🚩判断是否为空🚩完整代码 &#x1f33…

自带云盘的内网即时通讯软件,保障数据在公司局域网内安全流通

在信息时代,很多对于内部机密性要求较高的企业,都不惜成本地选择在内网搭建专属的私有化即时通讯系统。企业员工在内部通讯与协同办公的时候,会分享一些文件、文档等资料, 为了保证所有在通讯软件流通的文件,就需要选…

CSS基础选择器及常见属性

文章目录 一、CSS1、CSS简介2、CSS语法规范 二、CSS基础选择器1、选择器的作用2、选择器分类3、基础选择器标签选择器类选择器id选择器通配符选择器 三、CSS常见属性1、字体属性字体系列字体大小字体粗细文字样式 2、文本属性文本颜色对齐文本装饰文本文本缩进行间距 四、CSS引…

17.3 【Linux】systemctl 针对 service 类型的配置文件

17.3.1 systemctl 配置文件相关目录简介 服务的管理是通过 systemd,而 systemd 的配置文件大部分放置于/usr/lib/systemd/system/ 目录内。但是 Red Hat 官方文件指出, 该目录的文件主要是原本软件所提供的设置,建议不要修改!而要…

5. 线性层及其他层

5.1 神经网络结构 5.2 线性拉平 import torch import torchvision from torch import nn from torch.nn import ReLU from torch.nn import Sigmoid from torch.utils.data import DataLoader from torch.utils.tensorboard import SummaryWriterdataset torchvision.datase…

常见API架构介绍

常见API架构介绍 两个服务间进行接口调用,通过调用API的形式进行交互,这是常见CS架构实现的模式,客户端通过调用API即可使用服务端提供的服务。相较于SPI这种模式,就是服务端只规定服务接口,但具体实现交由第三方或者自…

【Java 中级】一文精通 Spring MVC - 标签库 (八)

👉博主介绍: 博主从事应用安全和大数据领域,有8年研发经验,5年面试官经验,Java技术专家,WEB架构师,阿里云专家博主,华为云云享专家,51CTO 专家博主 ⛪️ 个人社区&#x…

如何输出高质量软文,媒介盒子教你4大技巧

作为一名软文作者,只有知道软文写作的要求,才能打造一篇成功的软文,以便为企业或产品带来较高的关注度和曝光率,提高企业的知名度和品牌形象。下面就随小编一起来看看吧! 1、吸引眼球的标题 标题是软文写作的灵魂&am…

【Linux】邮件服务器搭建 postfix+dovecot+mysql (终极版 超详细 亲测多遍无问题)

🍁博主简介 🏅云计算领域优质创作者   🏅华为云开发者社区专家博主   🏅阿里云开发者社区专家博主 💊交流社区:运维交流社区 欢迎大家的加入! 文章目录 前言基础原理准备工作一 、安装关于权…

【八股】2023秋招八股复习笔记5(计算机网络-CN)

文章目录 八股目录目录1、应用层 & HTTP一些http题HTTPS 加密原理(问过)HTTP/1.1 新特性HTTP/2.0 与 RPC(问过)GET 和 POST 比较 2、传输层 & TCPTCP三次握手 & 四次挥手(问过)为什么每次TCP 连…