dubbo源码分析1——SPI机制的概要介绍

插件机制是Dubbo用于可插拔地扩展底层的一些实现而定制的一套机制,比如dubbo底层的RPC协议、注册中心的注册方式等等。具体的实现方式是参照了JDK的SPI思想,由于JDK的SPI的机制比较简单,满足不了一些复杂的需求,所以dubbo重写了一套SPI机制,实现了类似spring的IOC和AOP的

Dubbo与Spring整合分析

Dubbo提供了与spring容器整合的功能,开箱即用。本文暂时先分为两部分,1、服务注册 2、服务消费使用定义XML文件<?xml version="1.0" encoding="UTF-8"?><beans xmlns="htt

Dubbo实现细节

Dubbo 代码中的一些实现细节初始化过程细节解析服务基于 dubbo.jar 内的 META-INF/spring.handlers 配置,Spring 在遇到 dubbo 名称空间时,会回调 DubboNamespaceHandler。所有 dubbo 的标签,都统一用 DubboBeanDef

Dubbo扩展点加载

Dubbo 中的扩展点加载机制扩展点配置来源:Dubbo 的扩展点加载从 JDK 标准的 SPI (Service Provider Interface) 扩展点发现机制加强而来。Dubbo 改进了 JDK 标准的 SPI 的以下问题:JDK 标准的 SPI 会一次性实例化扩展点所有实现,如果有扩展

Dubbo框架设计

Dubbo 框架设计概览整体设计图例说明:图中左边淡蓝背景的为服务消费方使用的接口,右边淡绿色背景的为服务提供方使用的接口,位于中轴线上的为双方都用到的接口。图中从下至上分为十层,各层均为单向依赖,右边的黑色箭头代表层之间的依赖关系,每一层都可以剥离上层被复用,其中,Service 和 Config

Dubbo服务调用过程

本文介绍了服务调用过程的原理和实现细节1. 简介在前面的文章中,我们分析了 Dubbo SPI、服务导出与引入、以及集群容错方面的代码。经过前文的铺垫,本篇文章我们终于可以分析服务调用过程了。Dubbo 服务调用过程比较复杂,包含众多步骤,比如发送请求、编解码、服务降级、过滤器链处理、序列化、线程派

Dubbo服务引用

本文介绍了 Dubbo 服务引用的过程和实现细节1. 简介上一篇文章详细分析了服务导出的过程,本篇文章我们趁热打铁,继续分析服务引用过程。在 Dubbo 中,我们可以通过两种方式引用远程服务。第一种是使用服务直连的方式引用服务,第二种方式是基于注册中心进行引用。服务直连的方式仅适合在调试或测试服务的

Dubbo服务导出

本文介绍了 Dubbo 服务导出的过程和实现细节1.简介本篇文章,我们来研究一下 Dubbo 导出服务的过程。Dubbo 服务导出过程始于 Spring 容器发布刷新事件,Dubbo 在接收到事件后,会立即执行服务导出逻辑。整个逻辑大致可分为三个部分,第一部分是前置工作,主要用于检查参数,组装 UR

Dubbo Adaptive机制详解

Dubbo提供了一种SPI的机制用于动态的加载扩展类,但是如何在运行时动态的选用哪一种扩展类来提供服务,这就需要一种机制来进行动态的匹配。Dubbo SPI中提供的Adaptive机制就为解决这个问题提供了一种良好的解决方案,本文首先会通过一个示例来讲解Adaptive机制的用法,然后会从源码的角度

SPI 自适应拓展

本文介绍了自适应拓展的原理和实现细节1.原理在 Dubbo 中,很多拓展都是通过 SPI 机制进行加载的,比如 Protocol、Cluster、LoadBalance 等。有时,有些拓展并不想在框架启动阶段被加载,而是希望在拓展方法被调用时,根据运行时参数进行加载。这听起来有些矛盾。拓展未被加载,