最近听到有朋友公司用这个Dubbo,正好想了解一下源码。经过一小段时间分析,发现知识点非常多,很有价值。包括:动态代理,spring整合,各种设计模式,线程池,锁,netty这样基于nio的tcp框架,协议的设计,当然最重要的是一种解决问题的思路,就吧这些体会记录下来: 网上已经看到一些源码分析,总感觉缺少点什么,看完文章还是感觉
1. ReferenceBean 这个bean实现了InitializingBean接口2. 这个类实现了接口的afterPropertiesSet()这个方法,在spring容器启动时,property设置完之后就会调用实现了InitializingBean接口的afterPropertiesSet方法 2.1 方法里分别对consumerConfig,applicationConfig,Mo
大家好,我是烤鸭: dubbo 源码解析: 1.服务导出 介绍: Dubbo 服务导出过程始于 Spring 容器发布刷新事件,Dubbo 在接收到事件后,会立即执行服务导出逻辑。整个逻辑大致可分为三个部分,第一部分是前置工作,主要用于检查参数,组装 URL。第二部分是导出服务,包含导出服务到本地 (JVM),和导出服务到远程两个过程。第三部分是向注册中心注
一. Dubbo源码核心模块dubbo的架构如上图,辅助是注册中心和监控中心,负责接收输入的是Provider(肉),负责输出的是ConsumerRegistry:注册中心。 负责服务地址的注册与查找,服务的 Provider 和 Consumer 只在启动时与注册中心交互。注册中心通过长连接感知 Provider 的存在,在 Provider 出现宕机的时候,注册中心会立即推送相关事件
dubbo的github地址:https://github.com/apache/incubator-dubbo(可下载整个压缩包,解压搜索xsd,就能找到dubbo.xsd文件)zookeeper3.4.10下载地址:https://mirrors.cnnic.cn/apache/zookeeper/zookeeper-3.4.10/(解压到本地,并进入其conf目录,重命名zoo_sample
从标题就知道,这次我讲的是集群容错中的第二个关键词 Router,中文意思就是 路由,这个 路由是个很有意思的词汇.因为前端的 路由和后端的 路由他们是不同的,但是思想是基本一致的.鉴于很多技术文章都有一个诟病,就是只讲 概念...
转载
2021-07-30 10:02:31
219阅读
终于到了集群容错中的最后一个关键词,也就是 LoadBalance(负载均衡),负载均衡必然会涉及一些算法.但是也不用太担心,算法这个词虽然高大上,但是算法也有简单和复杂之分.既然是源码解析类的文章,那么就有义务让看不懂代码的....
转载
2021-07-30 11:37:22
214阅读
前言ExtensionLoader,从字面理解,拓展组件加载器,是Dubbo里用来加载器内部SPI(ServiceProviderInterface)的加载器。在dubbo框架中,每一个SPI接口都对应着自己的ExtensionLoader实例。 理解ExtensionLoader的内部机制,能够更得心应手的使用Dubbo的拓展组件,比如Filter,Listener,Protocol,
原创
2022-10-18 17:58:44
435阅读
服务导出在这里记录一下对" Dubbo 导出服务的过程"的研究。触发时机public class ServiceBean<T> extends ServiceConfig<T> implements InitializingBean, DisposableBean, ApplicationContextAware, ApplicationListener<Contex
Cluster 将 Directory 中的多个 Invoker 伪装成一个 Invoker,对上层透明,伪装过程包含了容错逻辑,调用失败后,重试另一个。。。
转载
2021-07-30 10:09:04
184阅读
dubbo的源码解析的,鉴于上次讲到了集群容错的总体架构,这次主要讲讲第一个关键词 directory,
转载
2021-07-30 10:14:25
126阅读
由于明天还要加班(心疼自己一秒),之前答应过小伙伴每周更新一篇dubbo的源码解析的,鉴于上次讲到了集群容错的总体架构,这次主要讲讲第一个关键词 directory,这个内容不多,比较适合这种时间比较紧的分享.后面还会陆续分享dubbo源码解析系列,但是不止于dubbo.
转载
2021-07-30 11:46:25
104阅读
SPI 全称为 Service Provider Interface,
原创
2023-01-25 08:11:44
163阅读
文章目录一、什么是SPI机制二、SPI机制源码分析ExtensionLoader静态类和静态方法new ExtensionLoader(type) 实例化扩展加载器
原创
2022-05-17 19:46:06
184阅读
Dubbo是阿里巴巴公司实现SOA治理的工具,最近听到有朋友公司用这个Dubbo,正好想了解一下源码。经过一小段时间分析,发现知识点非常多,很有价值。包括:动态代理,spring整合,各种设计模式,线程池,锁,netty这样基于nio的tcp框架,协议的设计,当然最重要的是一种解决问题的思路,就吧这些体会记录下来:
网上已经看到一些源码分析,总感觉缺少
本章分析本章分析内容大致如下,不打算走大段大段的源码分析了,就讲个大概,源码这东西吧,还是得自己过一遍。所以,看完应该只能了解个整体大概,细分领域就可以不用看了(可以给我留言,如果有人感兴趣可以写个分析下)。服务暴露流程服务引用流程 在前面的《「Dubbo源码」Spring整合Dubbo》中已经发分析,这篇主要就以ServiceBean和ReferenceBean为主了服务暴露流程大致流程如下Se
上一篇 dubbo源码解析——概要篇中我们了解到dubbo中的一些概念及消费端总体调用过程。本文中,将进入消费端源码解析(具体逻辑会放到代码的注释中)。本文先是对消费过程的总体代码逻辑理一遍,个别需要细讲的点,后面会专门的文章进行解析。开头进入InvokerInvocationHandler通过实现InvocationHandler,我们知道dubbo生成代理使用的是JDK动态代理。这个类中主要是
一、dubbo的简介Dubbo是Alibaba开源的分布式服务框架,它最大的特点是按照分层的方式来架构,使用这种方式可以使各个层之间解耦合(或者最大限度地松耦合)。从服务模型的角度来看,Dubbo采用的是一种非常简单的模型,要么是提供方提供服务,要么是消费方消费服务,所以基于这一点可以抽象出服务提供方(Provider)和服务消费方(Consumer)两个角色。二、dubbo的原理1)dubbo的
上一章分析了服务暴露的源码,这一章继续分析服务引用的源码。在Dubbo中有两种引用方式:第一种是服务直连,第二种是基于注册中心进行引用。服务直连一般用在测试的场景下,线上更多的是基于注册中心的方式。 服务的引用分为饿汉式和懒汉式,饿汉即调用ReferenceBean的afterPropertiesSet方法时引用;懒汉即ReferenceBean对应的服务被注入到其他类时引用,也就是用到了这个服
转载
2021-01-21 17:53:19
251阅读
2评论
本篇讲的是dubbo中比较重要的 远程暴露
转载
2021-07-30 11:50:14
166阅读