Dubbo源码分析笔记-一(工程目录介绍)
Dubbo 是阿里开发的分布式服务调用框架,提供了它提供了三大核心能力:面向接口的远程方法调用,智能容错和负载均衡,以及服务自动注册和发现。
工程目录
模块介绍
dubbo-common
Dubbo通用模块,定义了业务无关的工具类例如io处理、日志处理、配置处理、类处理等等操作,以及对于线程池的扩展,二进制编码处理,class编译处理,json数据处理,数据持久化接口处理等等。
dubbo-rpc-api
分布式服务调用框架RPC的核心基本实现,可以看到其中提供了很多的RPC抽象类、接口和实现类,包括服务发布,服务调用,,远程调用,RPC调用网络协议,RPC条用监听和过滤器等功能。提供了默认的基于Dubbo写协议的实现,还提供了其他的协议的实现,灵活通用,可以满足大多数项目的使用要求。
dubbo-registry-api
作为注册中心的核心接口重要组成部分,在DubboRPC中有两个角色Consumer和Provider,这个模块的主要功能就是实现服务的注册功能,例如我们常用的服务注册中心Zookeeper的支持还有使用Redis作为注册中心的支持
dubbo-remoting-api
这个模块作为Dubbo远程路由通讯的模块,实现的主要功能就是远程通讯,consumer要调用provider的远程方法就必须通过网络远程调用,这个模块定义了远程传输器、终端(endpoint)、客户端、服务端、编码器解码器、数据交换、缓冲区、通讯异常等核心接口,还提供了远程网络访问的抽象。例如Netty等。
dubbo-monitor-api
主要的监控模块,提供了服务调度的各种信息,例如调用时间,调用结果等,在控制中心通过收集调用信息,对于收集到的信息进行统计分析。最终可以实现对于各种调用的维护功能。
dubbo-container-api
dubbo支持服务运行的容器,定义启动列表包含应用程序的入口,定义容器的接口Container,包含启动和停止的方法,内置了很多的容器实现例如spring、jetty等等。
dubbo-config-api
作为Dubbo的配置模块,通过它的配置和组装将dubbo组件的各个模块组合在一起实现分布式服务框架,通过配置可以实现符合开发者要求的配置,提供例如服务发布配置、方法发布配置、服务消费配置、应用程序配置、注册中心配置、协议配置、监控配置等等,还有一系列关于spring的配置。
dubbo-cluster
dubbo集群实现,支持远程服务的集群,支持多种服务集群的调用。并且支持目录服务、注册中心就是一个典型的目录服务实现,支持负载均衡,具体的其他功能在分析源码的时候在进行详细的分析。
Dubbo基本原理
下图是由Dubbo官方提供的Dubbo的架构图
从图中可以看到
角色说明
节点 | 角色说明 |
---|---|
Provider | 服务提供者,暴露服务 |
Consumer | 调用远程服务的服务消费者 |
Registry | 服务注册和服务发现的注册中心 |
Monitor | 服务调用的监控中心 |
Container | 服务运行容器 |
调用关系说明
- 服务容器负责服务提供者的启动、加载、运行等过程
- 服务提供者向注册中心注册自己所提供的服务
- 服务消费者向注册中心订阅自己需要的服务
- 注册中心返回对应消息提供者的列表信息给服务消费者。
- 服务消费者从注册中心的列表中调用对应的服务提供者的地址
- 服务消费者和服务提供者的调用监控。
总结
上面对整个的Dubbo的工程路径做了简单的了解,知道了大致的服务调用流程。具体的源码分析功能在后续分享中会有更为详细的分析。
Dubbo源码分析笔记-一(工程目录介绍)相关推荐
- Dubbo源码分析:全集整理
文章目录 一.前言 二.目录 1. 源码篇 2. 衍生篇 一.前言 本文是Dubbo源码分析目录集整理,方便后续查找. 本文持续更新中.文章内容尚在修改中, 受限于个人能力和理解偏差,该系列文章部分内 ...
- Dubbo 源码分析 - 集群容错之 Cluster
1.简介 为了避免单点故障,现在的应用至少会部署在两台服务器上.对于一些负载比较高的服务,会部署更多台服务器.这样,同一环境下的服务提供者数量会大于1.对于服务消费者来说,同一环境下出现了多个服务提供 ...
- Dubbo 源码分析 - 集群容错之 Router
1. 简介 上一篇文章分析了集群容错的第一部分 – 服务目录 Directory.服务目录在刷新 Invoker 列表的过程中,会通过 Router 进行服务路由.上一篇文章关于服务路由相关逻辑没有细 ...
- dubbo源码分析系列——dubbo-cluster模块源码分析
2019独角兽企业重金招聘Python工程师标准>>> 模块功能介绍 该模块的使用介绍请参考dubbo官方用户手册如下章节内容. 集群容错 负载均衡 路由规则 配置规则 注册中心参考 ...
- dubbo源码分析系列(1)扩展机制的实现
1 系列目录 dubbo源码分析系列(1)扩展机制的实现 dubbo源码分析系列(2)服务的发布 dubbo源码分析系列(3)服务的引用 dubbo源码分析系列(4)dubbo通信设计 2 SPI扩展 ...
- Dubbo源码分析:小白入门篇
关注公众号"java后端技术全栈" 回复"000"获取优质面试资料 大家好,我是老田 答应了小伙伴的Dubbo源码分析系列,今天终于来了,希望不是很晚. 主要也 ...
- 志宇-dubbo源码分析
dubbo源码分析 文档 dubbo加载配置文件 dubboSPI dubbo服务提供 1.校验配置信息 2.创建URL 3.本地注册 4.远程注册 4.1 开启netty服务端 4.2 连接注册中心 ...
- 视频教程-RPC服务框架(Dubbo)源码分析-Java
RPC服务框架(Dubbo)源码分析 鲁班学院-子路老师曾就职于谷歌.天猫电商等多家互联网公司,历任java架构师.研发经理等职位,参与并主导千万级并发电商网站与后端供应链研发体系搭建,多次参与电商大 ...
- Dubbo 源码分析 - 集群容错之 LoadBalance
1.简介 LoadBalance 中文意思为负载均衡,它的职责是将网络请求,或者其他形式的负载"均摊"到不同的机器上.避免集群中部分服务器压力过大,而另一些服务器比较空闲的情况.通 ...
最新文章
- Py之pygame:Python的pygame库的简介、安装、使用方法详细攻略
- 数据库中的范式和反范式详解!
- Android新增Activity,并实现多Activity之间的切换
- Java IO ---学习笔记(数据流)
- java putall实现_java putAll与addAll的小区别
- redis 慢日志查询
- 移动端学习笔记(黑马教程)-仿京东首页
- vue条形码,二维码,打印总结分享
- 百度地图省市县乡镇街道对应的zoom级别
- 微信小程序实现登录Java前后端分离
- 两张表之间进行数据库查询时的聚合函数用法
- 产品经理修炼之道读后感
- IDEA自动生成实体类XML
- IT公司盈利模式分析
- b2b2c o2o 多商家入驻商城 直播带货商城 电子商务
- overleaf 插入图片_latex中插入图片
- css nth-child_比较CSS伪类:nth-​​child与nth-of-type
- 共享3d打印机ppt分享
- 实验吧隐写术WP(二)
- vue+echarts实现中国地图省市区下钻以及添加标注