前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >dubbo源码解析2-项目结构

dubbo源码解析2-项目结构

作者头像
日薪月亿
发布2019-05-14 14:44:38
5110
发布2019-05-14 14:44:38
举报
文章被收录于专栏:技术探索技术探索

特别说明,基于2.7.0

下面的内容主要来自官网,可以移步官网

1. 框架设计

image.png
image.png

图例说明:

  • 图中左边淡蓝背景的为服务消费方使用的接口,右边淡绿色背景的为服务提供方使用的接口,位于中轴线上的为双方都用到的接口。
  • 图中从下至上分为十层,各层均为单向依赖,右边的黑色箭头代表层之间的依赖关系,每一层都可以剥离上层被复用,其中,Service 和 Config 层为 API,其它各层均为 SPI。
  • 图中绿色小块的为扩展接口,蓝色小块为实现类,图中只显示用于关联各层的实现类。
  • 图中蓝色虚线为初始化过程,即启动时组装链,红色实线为方法调用过程,即运行时调时链,紫色三角箭头为继承,可以把子类看作父类的同一个节点,线上的文字为调用的方法。

2.模块分包

image.png
image.png
image.png
image.png

模块说明:

2.1 dubbo-common

公共逻辑模块:包括 Util 类和通用模型。 项目代码结构如下

image.png
image.png

2.2 dubbo-remoting

远程通讯模块:相当于 Dubbo 协议的实现,如果 RPC 用 RMI协议则不需要使用此包。

image.png
image.png
  • dubbo-remoting-zookeeper 封装了Zookeeper Client ,和 Zookeeper Server 通信
  • dubbo-remoting-api 定义Dubbo Client和 Dubbo Server的接口规则
  • dubbo-remoting-grizzly 基于 Grizzly 实现。
  • dubbo-remoting-http 基于 JettyTomcat 实现。
  • dubbo-remoting-mina 基于 Mina 实现。
  • dubbo-remoting-netty 基于 Netty 3 实现。
  • dubbo-remoting-netty4 基于 Netty 4 实现。
  • dubbo-remoting-p2p P2P 服务器。注册中心 dubbo-registry-multicast 项目的使用该项目。

2.3 dubbo-rpc

远程调用模块:抽象各种协议,以及动态代理,只包含一对一的调用,不关心集群的管理。 官方性能报告地址(基于2.0版本,不是最新):dubbo性能测试报告

image.png
image.png
  • dubbo-rpc-api 抽象各种协议以及动态代理,实现了一对一的调用。
  • 其他模块,实现 dubbo-rpc-api ,提供对应的协议实现 协议参考手册

2.4 dubbo-cluster

集群模块:将多个服务提供方伪装为一个提供方,包括:负载均衡, 容错,路由等,集群的地址列表可以是静态配置的,也可以是由注册中心下发。

2.5 dubbo-registry

注册中心模块:基于注册中心下发地址的集群方式,以及对各种注册中心的抽象。

2.6 dubbo-monitor

监控模块:统计服务调用次数,调用时间的,调用链跟踪的服务。

2.7 dubbo-config

配置模块:是 Dubbo 对外的 API,用户通过 Config 使用Dubbo,隐藏 Dubbo 所有细节。 dubbo也提供了四种配置方式,

  • XML配置
  • 属性配置
  • API配置
  • 注解配置 项目代码结构如下
image.png
image.png

dubbo-config-api:实现了API配置和属性配置的功能。 dubbo-config-spring:实现了XML配置和注解配置的功能

2.8 dubbo-container

容器模块:是一个 Standlone 的容器,以简单的 Main 加载 Spring 启动,因为服务通常不需要 Tomcat/JBoss 等 Web 容器的特性,没必要用 Web 容器去加载服务。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-02-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 框架设计
  • 2.模块分包
    • 2.1 dubbo-common
      • 2.2 dubbo-remoting
        • 2.3 dubbo-rpc
          • 2.4 dubbo-cluster
            • 2.5 dubbo-registry
              • 2.6 dubbo-monitor
                • 2.7 dubbo-config
                  • 2.8 dubbo-container
                  相关产品与服务
                  容器服务
                  腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
                  领券
                  问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档