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 服务运行容器

调用关系说明

  1. 服务容器负责服务提供者的启动、加载、运行等过程
  2. 服务提供者向注册中心注册自己所提供的服务
  3. 服务消费者向注册中心订阅自己需要的服务
  4. 注册中心返回对应消息提供者的列表信息给服务消费者。
  5. 服务消费者从注册中心的列表中调用对应的服务提供者的地址
  6. 服务消费者和服务提供者的调用监控。

总结

  上面对整个的Dubbo的工程路径做了简单的了解,知道了大致的服务调用流程。具体的源码分析功能在后续分享中会有更为详细的分析。

Dubbo源码分析笔记-一(工程目录介绍)相关推荐

  1. Dubbo源码分析:全集整理

    文章目录 一.前言 二.目录 1. 源码篇 2. 衍生篇 一.前言 本文是Dubbo源码分析目录集整理,方便后续查找. 本文持续更新中.文章内容尚在修改中, 受限于个人能力和理解偏差,该系列文章部分内 ...

  2. Dubbo 源码分析 - 集群容错之 Cluster

    1.简介 为了避免单点故障,现在的应用至少会部署在两台服务器上.对于一些负载比较高的服务,会部署更多台服务器.这样,同一环境下的服务提供者数量会大于1.对于服务消费者来说,同一环境下出现了多个服务提供 ...

  3. Dubbo 源码分析 - 集群容错之 Router

    1. 简介 上一篇文章分析了集群容错的第一部分 – 服务目录 Directory.服务目录在刷新 Invoker 列表的过程中,会通过 Router 进行服务路由.上一篇文章关于服务路由相关逻辑没有细 ...

  4. dubbo源码分析系列——dubbo-cluster模块源码分析

    2019独角兽企业重金招聘Python工程师标准>>> 模块功能介绍 该模块的使用介绍请参考dubbo官方用户手册如下章节内容. 集群容错 负载均衡 路由规则 配置规则 注册中心参考 ...

  5. dubbo源码分析系列(1)扩展机制的实现

    1 系列目录 dubbo源码分析系列(1)扩展机制的实现 dubbo源码分析系列(2)服务的发布 dubbo源码分析系列(3)服务的引用 dubbo源码分析系列(4)dubbo通信设计 2 SPI扩展 ...

  6. Dubbo源码分析:小白入门篇

    关注公众号"java后端技术全栈" 回复"000"获取优质面试资料 大家好,我是老田 答应了小伙伴的Dubbo源码分析系列,今天终于来了,希望不是很晚. 主要也 ...

  7. 志宇-dubbo源码分析

    dubbo源码分析 文档 dubbo加载配置文件 dubboSPI dubbo服务提供 1.校验配置信息 2.创建URL 3.本地注册 4.远程注册 4.1 开启netty服务端 4.2 连接注册中心 ...

  8. 视频教程-RPC服务框架(Dubbo)源码分析-Java

    RPC服务框架(Dubbo)源码分析 鲁班学院-子路老师曾就职于谷歌.天猫电商等多家互联网公司,历任java架构师.研发经理等职位,参与并主导千万级并发电商网站与后端供应链研发体系搭建,多次参与电商大 ...

  9. Dubbo 源码分析 - 集群容错之 LoadBalance

    1.简介 LoadBalance 中文意思为负载均衡,它的职责是将网络请求,或者其他形式的负载"均摊"到不同的机器上.避免集群中部分服务器压力过大,而另一些服务器比较空闲的情况.通 ...

最新文章

  1. Py之pygame:Python的pygame库的简介、安装、使用方法详细攻略
  2. 数据库中的范式和反范式详解!
  3. Android新增Activity,并实现多Activity之间的切换
  4. Java IO ---学习笔记(数据流)
  5. java putall实现_java putAll与addAll的小区别
  6. redis 慢日志查询
  7. 移动端学习笔记(黑马教程)-仿京东首页
  8. vue条形码,二维码,打印总结分享
  9. 百度地图省市县乡镇街道对应的zoom级别
  10. 微信小程序实现登录Java前后端分离
  11. 两张表之间进行数据库查询时的聚合函数用法
  12. 产品经理修炼之道读后感
  13. IDEA自动生成实体类XML
  14. IT公司盈利模式分析
  15. b2b2c o2o 多商家入驻商城 直播带货商城 电子商务
  16. overleaf 插入图片_latex中插入图片
  17. css nth-child_比较CSS伪类:nth-​​child与nth-of-type
  18. 共享3d打印机ppt分享
  19. 实验吧隐写术WP(二)
  20. vue+echarts实现中国地图省市区下钻以及添加标注

热门文章

  1. 光纤收发器的原理及应用_基于砷化镓传感器的光纤测温原理及其在地铁中的应用...
  2. JSON 格式化 显示到页面中
  3. Java读写Excel之POI超入门(转)
  4. 微信小程序周报(第十一期)-极乐商店出品
  5. GNU make manual 翻译( 一百一十一)
  6. C#关于自带滚动条控件的滚动条跳动问题
  7. 转:android 避免内存泄露
  8. KlayGE 3.10.0发布!
  9. php面试中的经典问题
  10. [jvm]运行时数据区域详解