Dubbo源码-准备工作

计划从头整理一下Dubbo相关的基础知识和源码阅读,输出成文字以供自己后续阅读
分享出来之后,大家共享和监督概念是否准确

一、基础准备

  • 代码地址:https://github.com/apache/dubbo
  • 官方文档:http://dubbo.apache.org/zh-cn/docs/user/preface/architecture.html
  • 控制台:
    • 代码:https://github.com/apache/dubbo-admin
    • 文档:http://dubbo.apache.org/zh-cn/docs/admin/introduction.html

二、概述

Dubbo是用Java语言编写,基于maven的项目,模块和功能非常多和丰富

在这里插入图片描述

三、整体架构

在这里插入图片描述

四、代码结构

所有的模块总共21个模块,分别如下:

名称模块子模块描述
公共逻辑模块dubbo-common包含util和通用模型
容器模块dubbo-containerdubbo-container-api是一个Standlone的容器,以简单的 Main 加载 Spring 启动,因为服务通常不需要 Tomcat/JBoss 等 Web 容器的特性,没必要用 Web 容器去加载服务
dubbo-container-spring
dubbo-container-log4j
dubbo-container-logback
远程通讯模块dubbo-remotingdubbo-remoting-api定义服务方和消费方之间的通信接口提供客户端和服务端的通信功能
dubbo-remoting-netty基于 Netty 3 实现
dubbo-remoting-netty4基于 Netty 4实现
dubbo-remoting-zookeeper是zookeeper的客服端通信,负责服务端和消费方与zookeeper进行通信
dubbo-remoting-etcd3 Zookeeper 的升级版
dubbo-remoting-http基于 Jetty 或 Tomcat 实现
dubbo-remoting-p2pP2P 服务器
dubbo-remoting-grizzly基于 Grizzly 实现,Grizzly 是一种应用程序框架
dubbo-remoting-mina基于 Mina实现,MINA是一个网络应用程序框架
远程调用模块 dubbo-rpcdubbo-rpc-api抽象各种协议以及动态代理,实现了一对一的调用抽象各种协议,以及动态代理,只包含一对一的调用,不关心集群的管理,dubbo-rpc 是整个dubbo的一个核心模块。
dubbo-rpc-dubbo dubbo:protocol id="dubbo1" name="dubbo" port="20880" dubbo:service protocol="dubbo" dubbo:provider protocol="dubbo"
dubbo-rpc-injvm
dubbo-rpc-http
dubbo-rpc-rmi
dubbo-rpc-hessian
dubbo-rpc-webservice
dubbo-rpc-native-thrift
dubbo-rpc-thrift
dubbo-rpc-memcached
dubbo-rpc-redis
dubbo-rpc-rest
dubbo-rpc-xml
dubbo-rpc-grpc
过滤器模块dubbo-filter提供了内置过滤器
集群模块dubbo-cluster 将多个服务提供方伪装为一个提供方,包括:负载均衡, 集群容错,路由,分组聚合等。集群的地址列表可以是静态配置的,也可以是由注册中心下发
注册中心模块dubbo-registry基于注册中心下发地址的集群方式,以及对各种注册中心的抽象。
监控模块dubbo-monitor 统计调用次数,时间
配置模块dubbo-config是dubbo对外API , 用户通过config使用dubbo
使用模版dubbo-demodubbbo 一个快速启动的demo
插件模块dubbo-plugin
数据序列化层dubbo-serialization可复用的一些工具,扩展接口为 Serialization, ObjectInput, ObjectOutput, ThreadPool。dubbo的序列化也支持多种协议
兼容以前版本的模块dubbo-compatible捐给apache后dubbo的包路径变了,这个模块还保留了以前路径的类,但都不建议使用了
三方库版本管理dubbo-dependencies-bompom文件定义dubbo 依赖第三方库的版本号 , 在parent 中有引入
版本管理dubbo-bompom文件定义dubbo各模块的版本号
dubbo-distribution
dubbo-configcenter
dubbo-dependencies
dubbo-metadata
dubbo-build-tools
打包模块dubbo-allpom文件定义了Dubbo的打包脚本

五、依赖关系

在这里插入图片描述

六、调用链

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值