`
eric_weitm
  • 浏览: 242134 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Dubbo源代码解析

 
阅读更多

一、Dubbo源代码层次结构

common(io序列化、store、线程)+ cofig + 容器container

remoting 远端通信(TCP、编解码、buffer、req/resp、消息分发)->mina netty http p2p zookeeper

RPC(协议、调用者、proxy、filter、tps)

RMI、http、redis、memcached、injvm各种协议的支持

monitor 监控和统计数据

registry 管理和展示服务

 

二、consumer的实现

xml--> ReferenceBean-->ReferenceConfig.createProxy->DubboInvoker->HeaderExchangeClient.request/send

核心概念:proxy refer invoker exchange

 

三、service的实现

xml->ServiceBean->ServiceConfig.export->doExportUrlsFor1Protocol->DubboProtocol.openServer

核心概念:export protocol server

 

四、registry的实现(利用url维护consumer和provider之间的对应关系)

1、订阅

ReferenceConfig->RegistryProtocol.refer->RegistryDirectory.subscribe->ZookeeperRegistry.subscribe

2、注册

内部创建了一个分布式的目录结构

 

五、monitor的实现:

容器内实现了几个pagehandler,对数据进行收集

 

admin

配置、路由等的web修改界面

cluster

多个provider组成的集群的路由、负载均衡、配置

六、核心概念:

1、remoting的层次

  Endpoint->Channel+ChannelHandler + ChannelBuffer->Client + Server->Transporter

  Exchanger:在传输层之上的消息交换的封装,ExchangeXXX对应上面的各个部分

    Response Request ExchangeCodec 完成双向的消息编解码

  HeaderXXX:在Exchanger的基础上,利用消息头来进行通信

2、Rpc

Protocol->Exporter->invoker->Invocation

Exporter 暴露可以被调用的服务

invoker 可以被调用的东西

Invocation 构成一次调用的数据

Protocol(应用层RPC协议) 服务的暴露和使用,除了自己实现的服务之间的调用,还需要和redis、memcache等进行交互,所以抽象出Protocol

Filter  调用过滤器

ProxyFactory 反射的动态代理,目前是javassit或jdk

3、RegistryService:提供注册、订阅等功能

4、PageHandler:对HttpServlet处理逻辑的封装

分享到:
评论

相关推荐

    Dubbo源代码分析之远程调用过程(2.5.4开发版)

    该文档分析了 Dubbo 框架中 RPC 调用的整个流程,并基于源代码按照执行 时序进行说明,源码版本为2.5.4开发版。 涉及的关键点包括:Invocation、Invoker、Directory、路由、负载均衡、集群容错、过滤器以及监控模块...

    Dubbo源代码(2.8.4)

    本文将深入探讨Dubbo 2.8.4的源代码结构、核心组件及其工作原理。 1. **源代码结构**: Dubbo的源码结构清晰,主要包括以下几个模块: - `dubbo-common`:基础通用模块,包含各种工具类和公共接口。 - `dubbo-...

    Spring+mybatis+dubbo整合源代码及jar包

    通过Spring_Mybatis_Dubbo_Jars.zip和Spring_Mybatis_Dubbo2.zip这两个压缩包,你可以获取到整合所需的所有依赖包和源代码,从而快速搭建起这个框架。这将帮助开发者更快地理解并掌握这三大框架的协同工作方式,提高...

    dubbo源码分析pdf.zip

    2. **源码解读**:针对Dubbo的关键模块,如Proxy、Filter、Monitor等,进行源码级别的分析,帮助读者深入理解代码实现细节。 3. **性能优化技巧**:分享Dubbo的性能调优策略,包括参数调整、服务治理策略优化等,以...

    阿里巴巴dubbo-2.5.4源代码

    《阿里巴巴Dubbo 2.5.4源代码解析与应用》 阿里巴巴的Dubbo是一款高性能、轻量级的Java远程服务框架,它以其强大的服务治理功能和高效的通信机制,在微服务领域占据着重要的地位。本篇文章将深入探讨Dubbo 2.5.4...

    dubbo源码解析2

    Dubbo的源代码主要由以下几个部分组成: 1. **core**:核心功能实现,包括SPI扩展机制、代理工厂等。 2. **remoting**:网络通信相关功能。 3. **cluster**:集群管理相关功能。 4. **registry**:服务注册中心相关...

    RocketMQ源代码解析.pdf

    根据提供的文件内容,我们可以提取出关于RocketMQ源代码解析的关键知识点。以下是对文件内容进行详细的知识点总结: 1. **RocketMQ架构与实现**: - RocketMQ是一个支持高吞吐量的分布式消息系统,它被广泛应用在...

    ares-remoting:mini版dubbo源代码,分布式服务注册与调用原理解释

    《ares-remoting:迷你版Dubbo源代码解析——分布式服务注册与调用揭秘》 在IT行业中,分布式服务已经成为大型系统架构的核心组成部分,而Dubbo作为阿里巴巴开源的一款高性能、轻量级的服务治理框架,备受业界关注...

    dubbo源码解析(含注释)

    本代码是github下载的dubbo源码,构建好了,可直接使用,其中包含一些demo和看的过程中的一些见解(注释),还包含sentinel、ZooInspector,以及新老版本的dubbo管控台,下载下来打开可直接使用,需要安装zookeeper,...

    dubbo学习后自己的源代码

    本项目是基于Dubbo的学习实践,包含了作者自己编写的源代码,分为三个部分:`dubbo-demo-api`、`dubbo-demo-provider_api`和`dubbo-demo-consumer_api`,分别代表了服务接口定义、服务提供者和服务消费者。...

    dubbo-2.5.4官网源码下载

    - 分析源码可以理解Dubbo的API设计和配置文件解析逻辑,如`dubbo.properties`和XML配置。 10. **Spring集成**: - Dubbo与Spring深度集成,源码中可以看到如何通过Spring的Bean管理和服务注入来实现服务的生命...

    dubbo源码解析2.0.7z

    《Dubbo源码解析2.0》是一份深入剖析阿里巴巴开源框架Dubbo核心机制的资料,专注于2.0版本的源代码分析。Dubbo作为Java领域最知名的分布式服务框架之一,其设计理念、实现原理以及在实际应用中的优化策略都是开发者...

    dubbo源码实例

    【Dubbo源码实例解析】 Dubbo是一款由阿里巴巴开源的高性能、轻量级的服务治理框架,主要用于构建分布式服务。这个实例旨在帮助初学者快速入门,理解Dubbo的核心概念和工作原理,通过源码分析深入掌握其内部机制。 ...

    dubbo-zookeeper-spring入门例子源代码

    【标题】"dubbo-zookeeper-spring入门例子源代码"涉及的是使用Dubbo、Zookeeper和Spring框架构建分布式服务的基本实践。Dubbo是阿里巴巴开源的一个高性能、轻量级的服务治理框架,它提供了服务注册与发现、远程调用...

    dubbo admin jdk1.8

    【压缩包子文件的文件名称列表】"dubbo-admin"可能包含的是Dubbo Admin的源代码、配置文件、或者已经打包好的WAR文件,用于直接部署到Tomcat服务器中。通常,Dubbo Admin会提供一个Web界面,允许用户查看服务提供者...

    dubbo-master.zip

    【标题】"dubbo-master.zip" 是一个包含 Apache Dubbo 源代码的压缩文件,适合开发者进行深入学习和定制开发。Dubbo 是一款高性能、轻量级的开源 Java RPC 框架,由阿里巴巴公司开发并维护,旨在提高服务间的调用...

    基于Dubbo分布式高校学籍管理系统设计与实现-源代码.zip

    2.要有详细的系统分析、设计、编程代码需要整洁。 3.系统具有用户登录和退出的功能; 4.系统功能结构: (1系统登录界面:实现不同人员对系统登录、密码修改、用户信息修改。 (2学生异动信息管理:实现学生在校期间...

    dubbo\dubbox编译、环境搭建、服务提供和服务消费及学习资料

    3.1 导入源代码 25 3.1.1 Dubboprovider配置 28 3.1.2 Dubboconsumer配置 30 4 资料参考信息 4.1 学习文档【dubbo-学习文档-20170831.zip】 DDubbo开源.pptx DeveloperGuide-zh-Dubbo.pdf Dubbo功能介绍.pdf ...

    dubbo精品课程-基础篇

    《Dubbo精品课程-基础篇》是一门专为IT专业人士设计的深度学习课程,主要针对Apache Dubbo这一高性能、轻量级的Java RPC框架。...同时,提供的PPT和源代码将作为辅助资料,帮助你在实践中巩固所学知识。

    dubbo2.0源码解读

    5. **源文件概述**:Dubbo的源代码包括多个模块,如dubbo-common、dubbo-remoting、dubbo-rpc、dubbo-cluster等,分别处理基础工具、网络通信、远程调用、集群逻辑等。 6. **核心机制分析**: - **服务注册与发现*...

Global site tag (gtag.js) - Google Analytics